Ios 将核心数据作为对象读取

Ios 将核心数据作为对象读取,ios,iphone,objective-c,cocoa,Ios,Iphone,Objective C,Cocoa,我的数据库“Message”中有一个实体,其值为MessageID、messageText,我希望读取每一行核心数据,生成类“Message”的对象,并将新对象放入数组中。 这是我第一次使用核心数据,我还不太了解它,我是如何做到这一点的。为您希望检索的实体创建一个获取请求。不要给它一个谓词,设置任何你想要的排序描述符 在托管对象上下文中执行fetch请求,它将返回该实体的所有对象的数组 这只是一个描述性的回答,您可以从核心数据介绍性文档中找到如何做到这一点的细节;你是新的核心数据,这是一个很好的

我的数据库“Message”中有一个实体,其值为MessageID、messageText,我希望读取每一行核心数据,生成类“Message”的对象,并将新对象放入数组中。
这是我第一次使用核心数据,我还不太了解它,我是如何做到这一点的。

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

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

这只是一个描述性的回答,您可以从核心数据介绍性文档中找到如何做到这一点的细节;你是新的核心数据,这是一个很好的学习方法


另外,不要将核心数据看作是转化为对象的数据行。这是一个对象关系图。它存储实体的对象及其之间的关系。您不必将“行”变成对象,而是直接将对象取回。

带有代码的@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
不起作用,它表示在“id”类型的对象上找不到属性messageID。创建获取请求的一种更现代的方法-您可以在一行中完成,而无需创建NSEntityDescription-
NSFetchRequest*request=[NSFetchRequest fetchRequestWithEntityName:@“Message”]这从iOS 4开始提供。