继承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(){}
}
网友评论