2013-11-26 79 views
2

我有我的数据库中的1个实体“消息”的值MessageID,messageText和我想读取核心数据的每一行,使我的类“消息”的对象,并把新对象数组。 这是我第一次使用Core Data,但我还没有完全掌握它,我如何设法做到这一点。作为对象读取核心数据

回答

2

为您希望检索的实体创建获取请求。不要给它一个谓词,设置你想要的任何类型描述​​符。

在托管对象上下文中执行获取请求,它将返回该实体所有对象的数组。

这是故意只是一个描述性的答案,你可以从核心数据入门文档中找到如何做到这一点的具体细节;您是Core Data中的新成员,这是学习它的好方法。

此外 - 不要将核心数据视为转换为对象的数据行。这是一个对象关系图。它存储实体对象和它们之间的关系。您不要将“行”转换为对象,直接返回对象。

+0

啊,谢谢。 我习惯于考虑行,这就是为什么我不理解它。 – user2414460

0

@Abizern与代码响应:

NSManagedObjectContext *moc = // your managed object context; 
NSEntityDescription *entityDescription = [NSEntityDescription 
    entityForName:@"Message" inManagedObjectContext:moc]; 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:entityDescription]; 

// You can also add a predicate or sort descriptor to your request 

NSError *error; 
NSArray *array = [moc executeFetchRequest:request error:&error]; 
if (array == nil) 
{ 
    // Deal with error... 
} 
+0

如何获取数组中的值的引用?'array [0] .messageID'不起作用,它表示属性messageID在'id'类型的对象上找不到。 – user2414460

+0

自己管理,谢谢你的回答。 – user2414460

+1

一种更现代的创建提取请求的方法 - 你可以在一行中完成而不需要创建NSEntityDescription - NSFetchRequest * request = [NSFetchRequest fetchRequestWithEntityName:@“Message”];'这已经在iOS 4以后可用。 – Abizern