-1

UITableViewController サブクラスがあり、viewDidLoad からいくつかのエンティティを取得しようとすると、空の配列が取得されます。しかし、viewDidAppear で同じコードを使用すると、それらのエンティティが取得されます。どのようだ?

4

1 に答える 1

0

を使用していNSFetchedResultsControllerますか? これは、テーブル ビューに Core Data を入力するための推奨される (そして最も簡単な) 方法です。結果コントローラーがそれを管理するため、フェッチの時間を気にする必要はありません。

FRC がない場合は、テーブルにデータを入力する必要があります。セットアップ、つまりビュー コントローラーの作成方法によっては、必要なすべての部分 (管理オブジェクト コンテキスト、データ配列、またはテーブル ビュー自体を含む) が、時間の経過viewDidLoadまでにまだ完全にロードされていない可能性があります。通常、viewDidLoadnib またはストーリーボードからロードされるビュー コントローラーに最適に使用されます。prepareForSegue:またはそのようなメソッドで必要なプロパティを提供すると、 で使用できるようになりますviewDidLoad:

それでも、FRC を使用する必要があります。データソースのメソッドを介して多かれ少なかれ遅延してフェッチを行います。これは、パフォーマンスとメモリ管理の最適なオプションでもあります。

于 2013-01-26T11:23:45.573 に答える