2010-06-06 4 views
3

J'utilise un contrôleur de résultats récupérés, qui semble vouloir être configuré en utilisant des sections de mon UITableView. Eh bien, dans ce cas, je ne veux pas utiliser les sections. Ce qui est assez facile pour définir la valeur de numberOfSectionsInTableView: à 1. Mais, maintenant je ne suis pas sûr de savoir comment obtenir numberOfRowsInSection: pour renvoyer toutes les cellules dans une section. Comment est-ce que je peux faire que cette méthode retourne toutes les cellules, puisque je veux seulement utiliser 1 section? iPhone: Contrôleur de résultats récupérés, n'utilisez pas les sections dans UITableView

Répondre

3

Pour que votre contrôleur tiré par les cheveux de résultats pour éviter des objets de retour dans les sections, vous devez initialiser correctement comme suit:

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

Ici il n'y aura pas de sections parce que vous passez nil comme argument de sectionNameKeyPath. Ensuite, votre méthode tableView:numberOfRowsInSection est correcte.

+0

Oui! Merci beaucoup, cela a fonctionné parfaitement! –

1

Même si vous ne voulez pas utiliser les sections, et initialiser le fetchedResultsController avec sectionNameKeyPath = nil, ce fetchedResultsController est toujours rempli avec une section et tous ses éléments. C'est ainsi que Apple implémente le fetchedResultsController. Donc, dans votre cas, vous avez 1 section à l'index 0, et dans cette section, vous avez tous les éléments, à partir de l'index 0 à numberOfRowsInSection-1.

Espérons que ça aide.

Questions connexes