无论如何,要在getter中返回自己的属性并在setter上进行设置?因为我只想在getter和setter里面打印日志,所以就可以了。
例如,我试图做这样的事情:
private(set) var internetConnectionAvailable: Bool {
get {
logger.debug("verifying internet connection")
// here return itself property
}
set {
logger.debug("changing internet connection")
// here set itself
}
}
如果我回到self.internetConnectionAvailable
吸气剂,我会得到:
链接器命令失败,退出代码为1
当我尝试编译项目时。
我正在尝试这样做,因为我不想创建额外的私有属性来存储get和set。我正在寻找是否有其他方法可以实现这一目标。
编辑:我注意到您说您不想创建额外的私有财产。那不好意思 不会。除非您将其作为NSManagedObject
子类(并连接到willAccessValueForKey
系统),否则将其连接到ObjC运行时NSObject
(例如,您可以通过自己的getter来添加日志记录;别笑了,我之前做过)。但是所有这些方法在Swift中都是疯狂的(在ObjC中是疯狂的;我仅将它们用于调试)。只需使后备变量即可。
如果您只想记录设置器,那么这将很简单:使用willSet
而不是set
。但是记录获取器需要手工实现。您可以使用私有后备变量来实现。
private var _internetConnectionAvailable: Bool
private(set) var internetConnectionAvailable: {
get {
logger.debug("verifying internet connection")
return _internetConnectionAvailable
}
set {
logger.debug("changing internet connection")
_internetConnectionAvailable = newValue
}
}
定义好get
自己之后,您就说过不需要默认处理,这意味着您不会获得自动后备变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句