4

私はフェッチされた結果コントローラーを使用しています。これは、UITableView のセクションを使用してセットアップしたいようです。この場合、セクションを使用したくありません。numberOfSectionsInTableView: の値を 1 に設定するのは簡単です。しかし、numberOfRowsInSection: を取得してすべてのセルを 1 つのセクションに戻す方法がわかりません。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
    return [sectionInfo numberOfObjects];
}

1 つのセクションのみを使用したいので、そのメソッドがすべてのセルを返すようにするにはどうすればよいですか?

4

2 に答える 2

3

フェッチされた結果コントローラーがセクションでオブジェクトを返さないようにするには、次のように適切に初期化する必要があります。

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];

nilの引数として渡すため、ここにはセクションはありませんsectionNameKeyPath。次に、あなたのtableView:numberOfRowsInSection方法は正しいです。

于 2010-06-06T07:06:13.017 に答える
1

セクションを使用せず、fetchedResultsController を sectionNameKeyPath= nil で初期化したとしても、この fetchedResultsController にはまだ 1 つのセクションとそのすべての項目が取り込まれています。これは、Apple が fetchedResultsController を実装する方法です。

したがって、あなたの場合、インデックス 0 に 1 つのセクションがあり、このセクションには、インデックス 0 から numberOfRowsInSection-1 までのすべての項目があります。

それが役に立てば幸い。

于 2010-06-06T13:19:42.727 に答える