2012-01-18 7 views
0

私はCore Data(UIManagedDocument)とUITableViewを使って簡単なアプリケーションを作成しています。現在、TableViewControllerに私はデータベースが存在するかどうかをチェックし、使用して作成または開き、必要に応じていずれかをしています:CoreData completionHandlerが返す前にUITableViewのnumberOfRowsInSectionが呼び出されますか?

UIDocument saveToURL:forSaveOperation:completionHandler: 

OR 

UIDocument openWithCompletionHandler: 

私が午前問題は、私のUITableViewのデータソースメソッドは、設定完了ハンドラ(前に呼び出さなっているということですfetchedResultsController)が返します。結果として、UITableViewが呼び出すとき:

UITableView tableView:numberOfRowsInSection: 

fetchedResultsController(行カウントを取得する)はまだnullです。

私は、有効なmanagedObjectContextが必要なので、fetchedResultsControllerをセットアップするためにドキュメントを作成または開いておく必要があることを理解しています。これはコアデータへの私の最初の進出であるので、どんなヘルプ/情報も高く評価されるでしょう。

...

EDIT:私はもう少しこれを見ている、と私はまだそれを考え出したていないが、私は周りのものを移動し、物事がで起こることを確認するの念を考えますより正確な注文。

答えて

1

あなたのテーブルのデリゲートメソッドは、この操作を行うことができます:あなたの完了ハンドラ内

numberOfRowsInSection { 
     if (myFetchedResultsController) { return <WhateverYouNormallyDoHere>; } 
     return 0; 
} 

、その後に、ちょうどテーブル多くレイ感謝

[myTableView reloadData]; 
+0

、非常に良い暗示のthatsを更新します。 – fuzzygoat

関連する問題