Получение списка значений из сущности в коде - PullRequest
0 голосов
/ 28 февраля 2011

У меня есть entity с именем клиентов и NSArrayController с именем clientsController . В моей сущности клиентов у меня есть атрибут clientCompany .

Каков наиболее простой способ программного получения списка каждой clientCompany во время выполнения цикла (чтобы код мог следовать из каждой обнаруженной clientCompany )? Я не уверен, должен ли я обращаться к контроллеру массива или управляемому объекту в этом случае.

Я пробовал:

for (NSDictionary *key in clientsController) {
    NSLog(@"%@", [key objectForKey:@"clientCompany"]);
}

без везения, но я думаю, что я в этом далеко. Я также попытался из любопытства напечатать упорядоченные объекты массива, но он печатает пусто:

NSLog(@"%@", [clientsController arrangedObjects]);

clientsController был инициализирован и доступен в другом месте программы, поэтому я подумал, что это будет просто, но я очень новичок во всем этом. Спасибо.

<ч /> Обновление <Ч /> Я добился небольшого успеха, пройдя по маршруту NSManagedObjectContext и попробовав NSFetchRequest. Запрашивая ObjectAtIndex:0 Теперь я могу вывести первую строку clientCompany на консоль. Мне просто нужно вытащить все их в один цикл, но сложная часть выполнена (я надеюсь).

1 Ответ

2 голосов
/ 28 февраля 2011

Это сработало для меня:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Clients" inManagedObjectContext:clientsMoc];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *items = [clientsMoc executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
NSInteger *counter;
counter = 0;
for (NSString *s in items) {
    NSManagedObject *mo = [items objectAtIndex:counter];  // assuming that array is not empty
    id value = [mo valueForKey:@"clientCompany"];
    NSLog(@"a value is %@", value);
    counter = counter + 1;
}
...