如何获取NSFetchedResultsController / NSManagedObjectContext的所有条目?

时间:2010-10-09 22:54:12

标签: iphone core-data nsmanagedobjectcontext

我有一个很好的工作iphone应用程序,可以处理核心数据。我使用NSFetchedResultsController / NSManagedObjectContext,如各种教程中所述。

现在我想扩展我的应用并添加更多功能。我需要建立一个数组,其中的对象包含来自我的数据的信息。

我不知何故需要获取我在上下文中拥有的所有数据的列表。

我认为我可以采用类似于获取UITableView数据的方法。

id <NSFetchedResultsSectionInfo> sectionInfo = [[_fetchedResultsController sections] objectAtIndex:section];

这个失败了,因为我确实有多个部分。现在我可以浏览所有部分并使用我自己的IndexPath来访问我的数据:

MyData *info = [_fetchedResultsController objectAtIndexPath:indexPath];

但我认为还有另一种方法我还没有找到,我希望有人可以帮助我。

非常感谢。

2 个答案:

答案 0 :(得分:40)

您是否正在寻找一种方法来获取NSFetchedResultsController的所有对象?如果是这样,请使用此功能。

NSArray *fetchedData = [_fetchedResultsController fetchedObjects];

如果您有多个实体为每个实体构建一个fetchrequest。这样的东西应该给你所有的对象。

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:self.entityName inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
NSError *error;
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:&error];

答案 1 :(得分:1)

如果你想获得特定部分的所有对象,你可以这样做:

NSArray *sectionObjects = [_fetchedResultsController.sections[section_number] objects];