Swift单例

2021-10-09  本文已影响0人  吕建雄

继承NSObject单例

class CardUtil : NSObject{

    /*

     静态属性shared持有唯一的实例,对外公开

     */

    static let shared = CardUtil()

    /*

     重载init()方法,使其对外不可见,不可以在外部调用,防止在外部创建实例

     */

    private override init(){}

    /*

     重载copy(), mutableCopy()方法,返回self,防止在外部复制势例。

     */

    override func copy() -> Any{

        /*

         这里也可以返回CardUtil.shard。

         只有shared能调用copy() mutableCopy()方法,那么self就是shared

         */

        return self

    }

    override func mutableCopy() -> Any {

        return self

    }

}

2、不继承NSObject

class CardUtil2 {

    /*

     不继承NSobject的类,没有copy() mutalbeCopy()方法,不需要重载

     */

    static let shared = CardUtil2()

    private init(){}

}

上一篇下一篇

猜你喜欢

热点阅读