美文网首页
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