我一直在尋找幾天,並繼續從閱讀蘋果文檔和各種教程學習,但有一個問題,我似乎無法得到處理。UITableView - 延遲更新使用部分時
我有一個簡單的應用程序,跟蹤項目,與一個單一的核心數據實體(ProjectEntry)。目前所有的屬性都是字符串。這基本上是Paul Hegarty的核心數據講座和Tim Roadley的網絡教程的結合。
我可以添加和保存實體並使用數據填充tableview。目前,我正在使用Hegarty在演講中提供的CoreDataTableViewController子類。我提到,因爲...
當我的UITableView沒有分成幾個部分時,添加一個新條目後,UI中會出現「即時」的新信息。但是,當我添加部分(通過sectionNameKeyPath)時,新數據仍然保存,但只有刷新幾次後才顯示,或者在刷新前等待30秒(通過Hegarty提供的拉到刷機制)。
tableview委託方法似乎都工作,如NSFetchedResultsController的方法。過去使用Stanford/Hegarty CoreDataTableViewController子類已經取得了成功,並且我通過實現文件本身瞭解了大量的內容。
控制器嵌入在導航控制器中,託管對象上下文通過prepareForSegue方法在控制器之間傳遞。一些簡單的日誌顯示我最初通過UIManagedDocument獲得的託管對象上下文正在成功傳遞。
我試過[self.tableview reloadData]和/或beginUpdates/endUpdates viewWillAppear,但延遲仍然存在。
將tableview分成導致延遲的部分是什麼?在tableview上調用reloadSections是否必要?就像我說的,這些條目與Core Data一起保存,並且fetchedResultsController會立即填充非分段tableview ...
這可能是一些顯而易見的事情,我只是想念,但任何幫助將不勝感激。
如何添加部分。您的症狀似乎表明數據正在保存在另一個上下文中,並最終在UIManagedDoc保存後流入綁定到FRC的上下文中。 –
我使用插入上述方法的sectionNameKeyPath部分的模型中的字符串值來提取(initWithFetchRequest)時添加了部分。你說的很有趣,因爲UIManagedDocument是在初始視圖控制器(而不是tableview)中打開/使用的。 tableview是使用UIManagedDoc中的managedObjectContext的後續視圖控制器。我仍然不確定該做什麼,但是你讓我思考。謝謝! – vapul
我應該提到當tableviewcontroller調用performFetch並且使用initWithFetchRequest時添加了這些部分。 – vapul