加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift中的单例用法

发布时间:2020-12-14 05:48:48 所属栏目:百科 来源:网络整理
导读:我仍然对使用Swift感到困惑,并希望有人可以帮助澄清我何时以及为什么我会这样做.根据我对Singleton的理解,它们是单个类实体,这意味着如果我有A类并且我在B类中创建了A类的共享实例,它只是对B中A类的引用,所以如果我改变或修改对象那么引用B类中的A类,原始对
我仍然对使用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
}

它是如何工作的

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

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

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

因此,您对sharedInstance所做的每一项更改都将在任何地方共享.

let a = Singleton.sharedInstance
a.value = 1

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

print(a.value) // 2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读