Swift-总结单例实现的几种方法

Swift-总结单例实现的几种方法,第1张

概述Swift实现代理的几种方法 1. class AppManager { private static let _sharedInstance = AppManager() class func getSharedInstance() -> AppManager { return _sharedInstance } private Swift实现代理的几种方法 1.
class AppManager {         private static let _sharedInstance = AppManager()        class func getSharedInstance() -> AppManager {        return _sharedInstance    }    private init() {} // 私有化init方法    }    //使用方式    AppManager.getSharedInstance()
2.
class AppManager {static let sharedInstance = AppManager()private init() {} // 私有化init方法}//使用方式AppManager.sharedInstance
3.
let _SharedInstance = AppManager()class AppManager  {   class var sharedInstance : AppManager {    return _SharedInstance   }}private init() {} // 私有化init方法}//使用方式AppManager.sharedInstance
4.
class AppManager {    class var sharedInstance : AppManager {        struct Static {            static let instance : AppManager = AppManager()        }        return Static.instance    }}private init() {} // 私有化init方法}//使用方式AppManager.sharedInstance
5.
class AppManager {    class var sharedInstance : AppManager {        struct Static {            static var oncetoken : dispatch_once_t = 0            static var instance : AppManager? = nil        }        dispatch_once(&Static.oncetoken) {            Static.instance = AppManager()        }        return Static.instance!    }}private init() {} // 私有化init方法}//使用方式AppManager.sharedInstance
@H_419_23@附:为什么需要保证INIT的私有化?

因为只有init()是私有的,才能防止其他对象通过默认构造函数直接创建这个类对象,确保你的单例是真正的独一无二。 因为在Swift中,所有对象的构造器默认都是public,所以需要重写你的init让其成为私有的。这样就保证像如下的代码编译报错,不能通过。 1 2 var a1 = AppManager() //确保编译不通过 var a2 = AppManager() //确保编译不通过

总结

以上是内存溢出为你收集整理的Swift-总结单例实现的几种方法全部内容,希望文章能够帮你解决Swift-总结单例实现的几种方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存