[英]Swift calling delegate from didSet
我有一個GameState
類的委托。 我試圖在每次playing:Bool
時調用gameStateUpdated
方法playing:Bool
使用didSet
更改playing:Bool
。 我一直在我的代表上獲得EXC_BAD_ACCESS
。 甚至檢查它是否為零。 當playing
設置時,我得到一個EXC_BAD_ACCESS
,我很肯定我的delegate
不是零。
var stateDelegate:GameStateDelegate?
var playing = false {
didSet {
stateDelegate?.gameStateUpdated(self.playing)
}
}
我知道我不想從計算屬性的setter引用self.playing
。 但這不應該是計算屬性。
編輯
如果我使用stateDelegate?
會發生同樣的事情stateDelegate?
或stateDelegate!
。 我之前有可選的鏈接,但它沒有工作,所以我想我會嘗試強制它。
如果問題與使用無關!
然后讓我們在其他地方尋找問題。
也許無限遞歸 ?
更具體地說, gameStateUpdated
發生了什么? 事實上,如果此方法正在改變playing
屬性,那么didSet
會一次又一次地被觸發......
您可以輕松地檢查這一點,只需在didSet
或以下代碼行中添加breakpoint
即可。
print("didSet called")
如果didSet
被多次調用,那么這就是問題所在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.