2013-11-26 6 views
2

У меня есть 1 объект в моей базе данных «Сообщение» со значениями MessageID, MessageText и я хочу прочитать каждый ряд основных данных, сделать объект моего класса «Message» и поместите новый объект в массив. Это первый раз, когда я использую Core Data, и я не совсем понял его, как мне это удается.Основные данные Чтение как объекты

ответ

2

Создайте запрос на выборку для объекта, который вы хотите получить. Не давайте ему предикат, задайте любой дескриптор типа, который вы хотите.

Выполнить запрос выборки в контексте управляемого объекта и возвращает массив всех объектов этого объекта.

Это преднамеренно просто описательный ответ, вы можете найти специфику того, как сделать это из вводной документации ядра данных; вы новичок в Core Data, и это хороший способ изучить его.

Также - не думайте о Core Data в терминах строк данных, которые вы превращаете в объекты. Это граф Object-Relationship. Он хранит объекты сущностей и их отношения между ними. Вы не включаете «строки» в объекты, вы возвращаете объекты обратно.

+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 запрос * = [NSFetchRequest fetchRequestWithEntityName: @«Message»];' Это был доступен с прошивкой 4. – Abizern

Смежные вопросы