Core Data iPhone — загрузка строки

У меня проблемы с пониманием того, как загружать данные с помощью Core Data. Вот что у меня есть:

Сущность с именем «Люди» Атрибуты этой сущности с именами «firstName» (строка), «lastName» (строка), «isSpecial» (логическое значение), «isVerySpecial» (логическое значение).

Я хочу получить имя и фамилию любого человека, который является особенным или очень особенным, чтобы я мог затем помещать эти имена в метки и куда угодно, как захочу. Я безуспешно играл с запросами на выборку.

Любая помощь будет высоко оценена, спасибо.


person Josh Kahane    schedule 09.01.2012    source источник


Ответы (2)


Что-то вроде этого должно сделать это:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *weightEntity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:[[yourCoreDataManager sharedInstance] managedObjectContext]];
[fetchRequest setEntity:weightEntity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"isSpecial == %@ OR isVerySpecial == %@", [NSNumber numberWithBool:YES], [NSNumber numberWithBool:YES]]];

NSError *error = nil;
NSArray *result = [[yourCoreDataManager sharedInstance] managedObjectContext] executeFetchRequest:fetchRequest error:&error];

А потом:

Person *person = [result objectAtIndex:0];
NSString *lastName = person.lastName;
NSString *firstName = person.firstName;
person ferostar    schedule 09.01.2012

Что-то вроде этого должно помочь:

self.fetchedResultsController = [Person fetchAllSortedBy:@"lastName" ascending:YES withPredicate:[NSPredicate predicateWithFormat:@"isSpecial == %@ OR isVerySpecial == %@", [NSNumber numberWithBool:YES], [NSNumber numberWithBool:YES]] groupBy:nil delegate:self];

то вы получите массив людей в вашем fetchedResultsController. Чтобы получить это простое использование

NSMutableArray *yourArray = [NSMutableArray arrayWithArray: self.fetchedResultsController.fetchedObjects];

Надеюсь, поможет

person Novarg    schedule 09.01.2012