讓我先來看看我的情況。我有一個ViewController,它保留了一個GameManager
的實例。 GameManager
類封裝了一個簡單遊戲的狀態和邏輯。當在GameManager
中遇到某些狀態時,我想執行一組操作。例如:遊戲結束時,我想通過對話框顯示遊戲。如上所述,遊戲邏輯駐留在GameManager
中,但創建和定位新的「遊戲結束」對話框的方法駐留在ViewController中。爲了允許GameManager
'調用'回到ViewController中,我在分配時將對ViewController的引用傳遞給了GameManager
,並且簡單地調用了ViewController上的方法。例如:如何允許iOS視圖控制器中的雙向通信?
// GameManager.m
- (void) gameOver {
[self.viewController showGameOver];
}
我的問題是:這是正確的,客觀的方式來做到這一點?有一種更純粹的方式來處理這個問題嗎?我雖然使用塊可能更合適。
不一定是你的問題,但要確保你在'self.viewController'引用上有一個'weak'屬性。否則,因爲'viewController'持有'gameController'並且'gameController'持有'viewController',所以都不會放過,你會得到內存泄漏。 – Logan
感謝您的提示。我想到了這一點。 – user3720455