我正在使用这样的定制吸气剂
var currentShowLiked: Bool {
get {
return [some condition met] ? true : false
}
set {
self.currentShowLiked = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,我希望能够设置true或false重新设置我的变量,但Swift强迫我实现一个setter,它不会产生任何警告,但在运行时如果我要改变我的变量的值,应用程序崩溃了没有明显的理由或理智的解释指向setter line with EXC_BAD_ACCESS (code=2...)和控制台中的消息warning: could not load any Objective-C class information. This will significantly reduce the quality of type information available.
我为什么这样做?
你处于递归上下文中.
你不能这样做:
self.currentShowLiked = newValue // Recursive - StackOverflow error
Run Code Online (Sandbox Code Playgroud)
解决这个问题:
private var _currentShowLiked : Bool
var currentShowLiked: Bool {
get {
return [ some condition met on _currentShowLiked ] ? true : false
}
set {
self._currentShowLiked = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3985 次 |
| 最近记录: |