微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 单例

注意: 被继承的类要避免是单例,否则子类通过单例的方式获取到的对象实际是父类的对象
案例:
class P: NSObject {

static let instance = P()
funcfuncA() {
funcB ( 1 )
}
func funcB(i: Int ) -> Bool ? {
return nil
}
}
class Human: P {
override false
}
Human.instance.funcA
原因: 子类通过单例的方式获取,实际是获取父类的单例,在执行funcB时不会执行子类的funcB方法
正确:
let h = Human ()
h . funcA ()

//////////////////////////////////////////////////////////////////////////////////////
class Person{

var name: String = " 无名氏 "

private static let person = Person ()

var shareInstance: Person {
return person
}
}
Person .shareInstance
person . name

swift 1.2 及之后的推荐写法

class MyManager {
staticlet sharedInstance=MyManager()
privateinit(){ }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐