如果我用這個:didSet導致EXC_BAD_ACCESS
fileprivate var _saved = false
open var lat = 0.0 {
didSet {
_saved = false
}
}
導致EXC_BAD_ACCESS
爲
moobj.lat = 0.0
,但簡單open var lat = 0.0
看起來不錯。沒有錯誤。 爲什麼?
如果我用這個:didSet導致EXC_BAD_ACCESS
fileprivate var _saved = false
open var lat = 0.0 {
didSet {
_saved = false
}
}
導致EXC_BAD_ACCESS
爲
moobj.lat = 0.0
,但簡單open var lat = 0.0
看起來不錯。沒有錯誤。 爲什麼?
經過幾個小時和幾個重建/重新啓動問題消失。不知道原因。 Imo,XCode的bug。
我想答案就在這裏:
看特別是在部分題爲其中包含以下兩點「訪問級別的指導原則」:
我。公共變量不能被定義爲具有內部,文件私有或私有類型,因爲該類型在使用公共變量的任何地方都可能不可用。
ii。函數不能具有比其參數類型和返回類型更高的訪問級別,因爲該函數可用於其構成類型不可用於周圍代碼的情況。
我認爲你的代碼不符合第二個條件,因爲didSet觀察者函數的參數是打開的,但函數本身試圖改變一個fileprivate變量。