我想知道是否有任何蘋果Xcode API用於監視狀態變化,然後再嘗試構建自己的狀態。我工作的應用程序改變了幾個視圖控制器。每個控制器可以有幾個較小的自定義視圖加上通常的複選框,文本字段等。狀態變化監測
主應用程序需要知道視圖控制器或其上的任何內容是否從之前的狀態再次保存。我們只需要知道國家是否已經改變。需要注意的是:如果用戶選中複選框,則認爲這是狀態更改,但如果用戶也取消選中複選框,則狀態不會更改。
我在看NSUndoManager,但我不確定它是否會工作。 任何建議表示讚賞
我想知道是否有任何蘋果Xcode API用於監視狀態變化,然後再嘗試構建自己的狀態。我工作的應用程序改變了幾個視圖控制器。每個控制器可以有幾個較小的自定義視圖加上通常的複選框,文本字段等。狀態變化監測
主應用程序需要知道視圖控制器或其上的任何內容是否從之前的狀態再次保存。我們只需要知道國家是否已經改變。需要注意的是:如果用戶選中複選框,則認爲這是狀態更改,但如果用戶也取消選中複選框,則狀態不會更改。
我在看NSUndoManager,但我不確定它是否會工作。 任何建議表示讚賞
有幾個辦法:
實施集中「模式」的對象。在這種情況下,視圖控制器只會更新這個主模型對象的屬性,並且你不需要做其他事情。然後,視圖控制器將在viewDidAppear
中檢查此模型對象的狀態,並查看是否有任何更改並相應地執行。
另一種方法是實現一個delegate-protocol pattern,通過這個delegate-protocol pattern,各個控制器可能有一些delegate
屬性,這些屬性會指示哪些對象必須被通知數據更改。該數據委託對象將被定義爲符合一些明確定義的協議,該協議指示如何通知其更改。
但是,如果您(a)有多個需要通知變更的對象;和/或(b)在呈現視圖時這些更改可能異步發生,您需要一些機制來執行此通知。這兩種常用方法可能與該模型對象的key-value-observing或posting a custom notification到NSNotificationCenter
。
爲了更好地勸你,我們需要你的模型對象的性質有更好的感覺,無論是更新在後臺異步發生,等等
這給了我一些東西來考慮。謝謝 – Miek
羅布指出的一切。一般熟悉Cocoa會清楚地表明,有很多設計模式和機制可以做到這一點。許多可能在其他平臺上顯式管理的事情被動地被管理。 – uchuugaka