Ios Swift 3吸气剂法
我想写getter,希望getter每次调用时都返回相同的对象。这是我的密码Ios Swift 3吸气剂法,ios,properties,swift3,getter,Ios,Properties,Swift3,Getter,我想写getter,希望getter每次调用时都返回相同的对象。这是我的密码 var someObject:NSObject? { get { if _someObject == nil { _someObject = NSObject() } return _someObject; } } 编译器给出了错误 使用未解析标识符“\u someObject” 如何在Swift 3中编写正确的getter方法?
var someObject:NSObject? {
get {
if _someObject == nil {
_someObject = NSObject()
}
return _someObject;
}
}
编译器给出了错误
使用未解析标识符“\u someObject”
如何在Swift 3中编写正确的getter方法?不要逐字翻译Objective-C代码 Swift等价物是一个惰性计算属性
lazy var someObject : NSObject = {
return NSObject()
}()
第一次访问属性时,对象创建一次,您总是会得到一个非可选对象。不要逐字翻译Objective-C代码 Swift等价物是一个惰性计算属性
lazy var someObject : NSObject = {
return NSObject()
}()
第一次访问属性时,对象创建一次,您总是会得到一个非可选对象。在Swift中,名为someObject的属性没有名为_someObject的支持变量。当然,您可以声明自己的名为_someObject的私有变量。作为一个优势,不需要将someObject声明为可选对象,因为getter永远不应该返回nil 在Swift中,名为someObject的属性没有名为_someObject的支持变量。当然,您可以声明自己的名为_someObject的私有变量。作为一个优势,不需要将someObject声明为可选对象,因为getter永远不应该返回nil 不一样。这意味着您不能将变量设置为nil并让它自动重新计算-这是一种非常强大的设计模式。@gnasher729我没有编写它是相同的,它相当于…每次调用“不相同”时都返回相同的对象。这意味着您不能将变量设置为nil并让它自动重新计算-这是一种非常强大的设计模式。@gnasher729我没有编写它是相同的,它相当于…每次调用时都返回相同的对象