如果我使用它:
fileprivate var _saved = false
open var lat = 0.0 {
didSet {
_saved = false
}
}
导致EXC_BAD_ACCESS
代表
moobj.lat = 0.0
但简单的open var lat = 0.0
看起来不错。没有错误。
为什么呢?
答案 0 :(得分:1)
我认为答案就在这里:
特别注意标题为"访问级别的指导原则"其中包含以下两点:
我。公共变量不能定义为具有内部,文件私有或私有类型,因为在使用公共变量的任何地方都可能无法使用该类型。
II。函数不能具有比其参数类型和返回类型更高的访问级别,因为该函数可用于其组成类型不可用于周围代码的情况。
我认为你的代码违反了第二个附带条件,因为didSet观察者函数的参数是打开的,但函数本身正在尝试更改fileprivate变量。
答案 1 :(得分:0)
经过几个小时和几次重建/重启后,问题消失了。不知道原因。 Imo,XCode的bug。