gpt4 book ai didi

swift - Swift 中的单例用法

转载 作者:可可西里 更新时间:2023-10-31 23:54:42 24 4
gpt4 key购买 nike

我仍然对使用 Swift 感到有点困惑,希望有人能帮助澄清我何时以及为什么要你。根据我对 Singleton 的理解,它们是单类实体,这意味着如果我有 A 类并且我在 B 类中创建 A 类的共享实例,它只是对 B 中 A 类的引用,所以如果我更改或修改对象在 B 类中引用 A 类,原始对象 Class 不受影响,仅影响 B 类中的对象。

如果我想要一个 A 类和 B 类,并且在 B 类中创建对 A 类的直接引用,那么我所做的任何更改都会在 A 类中生效。该类是直接修改的,而不是引用该类的对象的实例。

最佳答案

单例

看看这个单例类

final class Singleton {
static let sharedInstance = Singleton()
private init() { }

var value = 0
}

它是如何工作的

没有办法(在定义它的源文件之外)创建此类的多个实例,因为初始化程序已被标记为private

访问 Singleton 实例的唯一方法是使用 sharedInstance,它会返回唯一可用的实例。

您可以从任何类调用任意多次 sharedInstance,然后根据需要复制它。每个变量将始终包含对分配在 Heap 上的 Singleton 的唯一实例的引用。

因此,您对 sharedInstance 所做的每项更改都将在各处共享。

enter image description here

例子

let a = Singleton.sharedInstance
a.value = 1

let b = Singleton.sharedInstance
print(b.value) // 1
b.value = 2

print(a.value) // 2

关于swift - Swift 中的单例用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com