簡體   English   中英

Swift從didSet調用委托

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM