我有一个很好的工作iphone应用程序,可以处理核心数据。我使用NSFetchedResultsController / NSManagedObjectContext,如各种教程中所述。
现在我想扩展我的应用并添加更多功能。我需要建立一个数组,其中的对象包含来自我的数据的信息。
我不知何故需要获取我在上下文中拥有的所有数据的列表。
我认为我可以采用类似于获取UITableView数据的方法。
id <NSFetchedResultsSectionInfo> sectionInfo = [[_fetchedResultsController sections] objectAtIndex:section];
这个失败了,因为我确实有多个部分。现在我可以浏览所有部分并使用我自己的IndexPath来访问我的数据:
MyData *info = [_fetchedResultsController objectAtIndexPath:indexPath];
但我认为还有另一种方法我还没有找到,我希望有人可以帮助我。
非常感谢。
答案 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];