加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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(){ }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读