Swift 3 getter 方法
Swift 3 getter method
我想写 getter 并希望 getter return 每次调用时都是同一个对象。这是我的代码。
var someObject:NSObject? {
get {
if _someObject == nil {
_someObject = NSObject()
}
return _someObject;
}
}
编译器报错
使用未解析的标识符“_someObject”
如何在 Swift 3 中编写正确的 getter 方法?
不要按字面翻译 Objective-C 代码。
Swift 等价物是惰性计算 属性
lazy var someObject : NSObject = {
return NSObject()
}()
第一次访问 属性 和
时 创建一次对象
你总是得到一个非可选对象。
在 Swift 中,名为 someObject 的 属性 没有名为 _someObject 的支持变量。您 可以 当然可以声明您自己的名为 _someObject 的私有变量。作为一个优点,不需要将 someObject 声明为可选的,因为 getter 不应该是 return nil。
我想写 getter 并希望 getter return 每次调用时都是同一个对象。这是我的代码。
var someObject:NSObject? {
get {
if _someObject == nil {
_someObject = NSObject()
}
return _someObject;
}
}
编译器报错 使用未解析的标识符“_someObject” 如何在 Swift 3 中编写正确的 getter 方法?
不要按字面翻译 Objective-C 代码。
Swift 等价物是惰性计算 属性
lazy var someObject : NSObject = {
return NSObject()
}()
第一次访问 属性 和
时 创建一次对象
你总是得到一个非可选对象。
在 Swift 中,名为 someObject 的 属性 没有名为 _someObject 的支持变量。您 可以 当然可以声明您自己的名为 _someObject 的私有变量。作为一个优点,不需要将 someObject 声明为可选的,因为 getter 不应该是 return nil。