美文网首页
Swift单例

Swift单例

作者: 吕建雄 | 来源:发表于2021-10-09 10:20 被阅读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(){}

    }

    相关文章

      网友评论

          本文标题:Swift单例

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