Swift 单例
发布时间:2020-12-14 02:34:28 所属栏目:百科 来源:网络整理
导读:注意: 被继承的类要避免是单例,否则子类通过单例的方式获取到的对象实际是父类的对象 案例: class P: NSObject { static let instance = P() func funcA() { funcB ( 1 ) } func funcB(i: Int ) - Bool ? { return nil } } class Human: P { override false
注意: 被继承的类要避免是单例,否则子类通过单例的方式获取到的对象实际是父类的对象
案例:
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(){ }
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |