作为对象读取核心数据
我有我的数据库中的1个实体“消息”的值MessageID,messageText和我想读取核心数据的每一行,使我的类“消息”的对象,并把新对象数组。 这是我第一次使用Core Data,但我还没有完全掌握它,我如何设法做到这一点。作为对象读取核心数据
为您希望检索的实体创建获取请求。不要给它一个谓词,设置你想要的任何类型描述符。
在托管对象上下文中执行获取请求,它将返回该实体所有对象的数组。
这是故意只是一个描述性的答案,你可以从核心数据入门文档中找到如何做到这一点的具体细节;您是Core Data中的新成员,这是学习它的好方法。
此外 - 不要将核心数据视为转换为对象的数据行。这是一个对象关系图。它存储实体对象和它们之间的关系。您不要将“行”转换为对象,直接返回对象。
@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...
}
如何获取数组中的值的引用?'array [0] .messageID'不起作用,它表示属性messageID在'id'类型的对象上找不到。 – user2414460
自己管理,谢谢你的回答。 – user2414460
一种更现代的创建提取请求的方法 - 你可以在一行中完成而不需要创建NSEntityDescription - NSFetchRequest * request = [NSFetchRequest fetchRequestWithEntityName:@“Message”];'这已经在iOS 4以后可用。 – Abizern
啊,谢谢。 我习惯于考虑行,这就是为什么我不理解它。 – user2414460