Основные данные и создание объектов модели - PullRequest
0 голосов
/ 27 ноября 2010

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

Скажите, если у меня был изменяемый массив объектов, возвращаемых из запроса на выборку. Как я могу просмотреть каждый из них, если у меня нет сгенерированного определения объекта из модели сущностей? Под определением сгенерированного объекта я подразумеваю определение заголовка и класса тела объекта, описанного в пакете модели данных.

1 Ответ

0 голосов
/ 27 ноября 2010

Все сущности CoreData являются производными от NSManagedObject, и ко всем данным базы данных из них можно получить доступ посредством кодирования значения ключа. Минимум, который вам нужно знать, можно получить от модели. Вам не обязательно требовать заголовки.

Например, сущность PersonEntity , которая имеет отношение к NameEntity с атрибутом firstname

NSArray *results = [managedObjectContext queryEntityForName:@"PersonEntity" predicateFormat:nil argumentArray:nil];

for(NSManagedObject *object in results)
{
NSString *name = [object valueForKeyPath:@"nameobject.firstname";
[self doSomething:name];
}

queryEntityForName - моя собственная категория. Вы можете найти это полезным.

@implementation NSManagedObjectContext(VMQueryAdditions)

-(NSArray *)queryEntityForName:(NSString *)name predicateFormat:(NSString *)pstring argumentArray:(NSArray *)arr
{
    NSEntityDescription *entity = [NSEntityDescription entityForName:name inManagedObjectContext:self];
    NSFetchRequest *fetch = [[[NSFetchRequest alloc] init] autorelease];

    [fetch setEntity:entity];
    NSPredicate *pred;

    if(pstring)
    {
        if(arr) pred = [NSPredicate predicateWithFormat:pstring argumentArray:arr];
        else    pred = [NSPredicate predicateWithFormat:pstring];
        [fetch setPredicate:pred];
    }

    NSError *error = nil;

    NSArray *results = [self executeFetchRequest:fetch error:&error];

    if (error) {
        NSLog(@"MOC Fetch - Unresolved error %@, %@", error, [error userInfo]);
        return [NSArray array];
    }

    return results;

}

@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...