1

私はスタンフォードの CoreDataTableViewController を使用してアプリに取り組んでいます。CDTVC ファイルを削除してから再度追加するまで、すべてのデータベースの保存とフェッチは正しく機能していました。今は何も取得していません。CellForRowAtIndexPath が呼び出されておらず、フェッチ要求がデータベース内の正しい数のエントリを返しても (新しいエントリごとに反映されます)、numberOfRowsInSection と numberOfSections の両方が 0 を返します。

何が起こったのかわかりません。サブクラスを再作成して、まったく新しい Table View Controller を作成しようとしました。シミュレーターとデバイスからアプリを削除しました。dataSource およびデリゲートとしてのアウトレットが設定され、fetchedResultsController が設定されて nil ではなく、CoreDataTableViewController、setFetchedResultsController、および performFetch 内のメソッドがまだ呼び出されています。

ありがとう

4

2 に答える 2

1

最終的な答え

チャット セッション後に回答を更新します。問題を解決する代わりにTLIndexPathToolsに切り替える。TLIndexPathControllerNSFetchedResultsController

答え #2

次のメソッドがゼロを返していると言っているようです。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [[[self.fetchedResultsController sections] objectAtIndex:section] numberOfObjects];
}

fetchedResultsControllerまた、が設定されていること、および呼び出したperformFetchこと、および結果がゼロ以外であること、つまりfetchedObjectsプロパティが空でない配列を返していることを確認したこと。これらすべてが真であり、上記のメソッドが 0 を返す方法がわかりません。上記のメソッドにブレークポイントを設定して、これらのことを再確認できますか? を呼び出す前に、このメソッドが呼び出されている可能性がありますperformFetch

それでも問題が解決しない場合は、私のTLIndexPathToolsライブラリを試すことができます。に代わるものを提供しますNSFetchedResultsController。Core Data サンプル プロジェクトを確認してください。

答え #1

fetchedResultsControllerテーブル ビュー コントローラーのプロパティを設定していることを確認します。問題の説明から、このプロパティは のようですnil

于 2013-08-26T15:38:03.713 に答える