[英]UITableView numberOfRowsInSection called before Core Data completionHandler returns?
我正在使用Core Data(UIManagedDocument)和UITableView創建一個簡單的應用程序。 當前在TableViewController中,我正在檢查數據庫是否存在,並根據需要使用以下方法創建或打開:
UIDocument saveToURL:forSaveOperation:completionHandler:
OR
UIDocument openWithCompletionHandler:
我遇到的問題是,在完成處理程序(設置fetchedResultsController)返回之前,將調用UITableView數據源方法。 結果,當UITableView調用時:
UITableView tableView:numberOfRowsInSection:
fetchedResultsController(獲取行計數的位置)仍然為null。
我的理解是,必須創建/打開文檔才能設置fetchedResultsController,因為它需要有效的managedObjectContext。 這是我對Core Data的首次嘗試,因此,非常感謝您的幫助/信息。
...
編輯 :我已經看了更多,盡管我還沒有弄清楚,但我認為這只是移動事物並驗證事物以更正確的順序發生的一種情況。
您的表委托方法可以做到這一點:
numberOfRowsInSection {
if ( myFetchedResultsController ) { return <WhateverYouNormallyDoHere>; }
return 0;
}
然后在完成處理程序中,刷新表
[myTableView reloadData];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.