小弟的問題是這樣的:我在寫網絡程序做緩存的策略是在網絡數據請求下來之前生成NSFetchedResultController然后網絡數據請求下來后更新數據庫,借用NSFetchedResultController的機制對界面進行更新。可是奇怪的是當我把網絡數據請求下來更新到數據庫以后之前生成的NSFetchedResultController并沒有更新,也沒有調用代理方法通知視圖更新。即便是我在網絡更新數據以后手動調用一次performFetch其中的數據也不會更新。更加奇怪的是,如果我在網絡數據請求結束以后按照同樣的配置再生成一個NSFetchedResultController此時就有數據。我很確定在無論是手動調用performFetch還是重新生成NSFetchedResultController對象之前,數據庫的內容確實得到了更新,這是我用SqlitePro進行查看的。通過查閱蘋果文檔,我只能得到這樣的信息:Theresultsarrayreflectsthein-memorystateofmanagedobjectsinthecontroller’smanagedobjectcontext,nottheirstateinthepersistentstore.Thereturnedarraydoesnot,however,updateasmanagedobjectsareinserted,modified,ordeleted.也就是說,NSFetchedResultController只能顯示內存狀態(tài),而不能表示持久對象的狀態(tài),可是。。。我既然已經把對象保存起來,上下文中的對象狀態(tài)應該已經改變了啊,這種情況下我應該怎么理解NSFetchedResultController的更新機制?求大神解釋QAQ
NSFetchedResultController 在什么時候回更新數據?
肥皂起泡泡
2019-04-19 16:11:33