簡體   English   中英

使用KVO在UITableView中重新加載數據

[英]Using KVO to reload data in UITableView

我最近一直在擴大我的視野,並試圖在我的編程中開始更多地使用KVO。

我的iPhone應用程序中有一個視圖控制器,它充當UITableView的數據源和委托。 我還有一個單例模型控制器,用於協調使用從Web獲取的數據填充我的模型。

在我的視圖控制器中,我請求模型的控制器從Web加載新數據。 然后,我可以觀察單例的“數據集”屬性,並在項目添加到集合或從集合中刪除時接收KVO通知。

現在,我的表視圖中的每個單元格都有一個指示符,指示是否已讀取該單元格中的內容(如郵件中的藍色“未讀”點)。 與郵件一樣,當選擇一行時,我將顯示該行的詳細信息。 在詳細視圖的viewDidLoad中,我將對象的“read”屬性設置為YES。 我希望原始視圖控制器能夠觀察數據集中每個對象的這個“讀取”屬性,以便可以根據需要自動調用[tableView reloadData]並重新繪制沒有藍點的單元格。

在研究這個時,我發現了以下鏈接: http//homepage.mac.com/mmalc/CocoaExamples/controllers.html#observingACollection

根據這個,看起來我會做以下事情:
1)成為陣列的觀察者
2)每當我收到數組更改的通知時,我都會添加(或刪除)自己作為我感興趣的各個屬性的觀察者。
3)當我收到我感興趣的屬性更改通知時,我可以調用[tableView reloadData]

我目前正在嘗試實施這種方法。 任何有這方面經驗的人都可以就這種方法提出一些建議嗎? 如果這是處理這類情況的最佳方法?

如果這是正確的方法,那么當集合發生變化時,是否有人願意分享他們在集合中添加/刪除對象的觀察者的實現?

謝謝!

我認為您可以使用Core Data和Fetched Results Controller來完成此任務。 我相信這可以為你節省很多工作。 這是一個很好的指南: Ray Wenderlich核心數據教程,入門

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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