答案 0 :(得分:0)
获取请求一次只能检索一个实体。如果您有两个不相关的实体,则需要创建两个获取请求。如果您的实体有关系,您可以使用单个获取请求并通过entity1.relationship访问实体2,反之亦然。
在最简单的形式中,获取请求以随机顺序返回一个对象数组(在这种情况下,我们有一个名为Event的实体,其名称为timeStamp):
// create a fetch request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// fetch all objects
NSError *error = nil;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
NSLog(@"Houston, we have a problem: %@", error);
}
// display all objects
for (Event *event in fetchedObjects) {
NSLog(@"%@", [event.timeStamp description]);
}
要订购您的托管对象,您可以添加排序描述符。如果不需要所有对象,则可以添加谓词以过滤将哪些管理对象添加到数组中。请查看Xcode中的代码片段以获取此类示例(上面的代码基于代码片段)。