我正在使用像这样的自定义吸气剂
var currentShowLiked: Bool {
get {
return [some condition met] ? true : false
}
set {
self.currentShowLiked = newValue
}
}
而且效果很好。但是,我希望能够对变量进行设置true
或false
重新赋值,但是Swift强制我实现了一个setter,它不会产生任何警告,但是在运行时,如果我要更改变量的值,则应用程序将崩溃并崩溃。EXC_BAD_ACCESS (code=2...)
在控制台中没有明显的原因或理智的解释指向设置器行和消息warning: could not load any Objective-C class information. This will significantly reduce the quality of type information available.
我为什么要这么做?
您处于递归上下文中。
您不能在currentShowLiked属性主体中使用currentShowLiked,如下所示:
// Recursive, Infinite loop
self.currentShowLiked = newValue
要解决此问题,请执行以下操作:
private var _currentShowLiked : Bool
var currentShowLiked: Bool {
get {
return [ some condition met on _currentShowLiked ] ? true : false
}
set {
self._currentShowLiked = newValue
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句