15

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

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

我需要以某种方式获取我在上下文中拥有的所有数据的列表。

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

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

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

MyData *info = [_fetchedResultsController objectAtIndexPath:indexPath];

但我认为还有另一种方法我还没有找到,我希望有人能在这里帮助我。

非常感谢。

4

2 回答 2

41

您是否只是在寻找一种从 NSFetchedResultsController 获取所有对象的方法?如果是这样,请使用它。

NSArray *fetchedData = [_fetchedResultsController fetchedObjects];

如果您有超过 1 个实体,请为每个实体构建一个 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];
于 2010-10-09T23:08:23.703 回答
1

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

NSArray *sectionObjects = [_fetchedResultsController.sections[section_number] objects];
于 2014-07-25T00:10:16.483 回答