Sch*_*uce 3 singleton memory-management reference-counting swift unowned-references
由于共享单例实例将始终存在,我们是否可以安全地使用[unowned self]该单例类中的所有闭包?
当然,这是安全的.但这不是一个好理由.
是否使用弱引用或强引用应基于您正在编写的函数中的内存管理特性.例如,如果对象强烈引用闭包,则闭包应捕获对象的弱引用; 并且这是安全的,因为没有其他人有关闭的引用,所以它只能在主对象存活时执行,等等.如果没有保留周期,并且闭包被赋予一个单独的API,以便它不被绑定到主对象的生命周期,那么闭包应该对主对象有一个强引用.这种推理同样适用于单身人士和非单身人士.
是的,单例拥有对其自身的强引用,并且无法被处置。
在此基础上可以肯定地说,您可以安全地创建对其的弱引用或无主引用。
该类在第一次被请求时延迟创建其唯一实例,此后确保无法创建其他实例。单例类还可以防止调用者复制、保留或释放实例。
测试它的一个简单方法是从主类进行测试。
在第一个(已处置的)类和第二个(新创建的)类之间没有对单例的引用。
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |