美文网首页
Swift单例

Swift单例

作者: 南飞孤鸿 | 来源:发表于2016-09-01 11:46 被阅读25次

    单例

    单例的用途什么的就不必再重复说,直接上干货
    Swift中单例相比OC简单很多,一行代码可以搞定单例的生成

    class Peson: NSObject{
    
        // Swift中的let是线程安全的
        static let ps : Peson = Peson()
        // 生成单例的类方法
        class func shareInstance() -> Peson {
            return ps
        }
        // 将init方法私有化(取消对象外部的init方法),保证对象单一
        // 与OC不用,没有allocWithZone这个方法,不能从源头控制init方法创建出来的对象单一,如果要保证绝对单例,就必须吧init方法私有化
        private override init() {}
    }
    

    与OC类似,为了保证对象的绝对单一,我们应该重写CopyWithZone这个方法,

    //遵守NSCopying协议,重写Copy方法,实现copy对象也是单例
    extension Peson : NSCopying {
        func copyWithZone(zone: NSZone) -> AnyObject {
            return Peson.ps
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Swift单例

          本文链接:https://www.haomeiwen.com/subject/bbbcettx.html