Я пытаюсь создать приложение Core Data для iPhone. Одна из сущностей, которую я отслеживаю, - это автомобили, а один атрибут каждого автомобиля - «производитель».
В разделе «Изменить автомобиль» моего приложения у меня есть UIPickerView, который необходимо загрузить с каждым из уникальных производителей, которые ранее были введены в систему. Я пытаюсь создать NSFetchRequest, чтобы получить массив уникальных атрибутов «производителя» и использовать его для заполнения UIPickerView.
Проблема, с которой я сталкиваюсь, заключается в том, что, независимо от того, есть ли в хранилище данных ноль записей или 100, всегда есть одна запись в выполненном запросе выборки в нулевом элементе со значением @ "".
Я делаю это неправильно или есть более простой способ сделать это? Я хотел бы просто запустить быстрый SQL-запрос !!!
Мой код ниже:
// Populate the manufacturerNameList array
NSManagedObjectContext *moc = [self.selectedLease managedObjectContext];
NSEntityDescription *ed = [NSEntityDescription entityForName:@"Car" inManagedObjectContext:moc];
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
[fetchRequest setEntity:ed];
// Get only manufacturer and only uniques
[fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"manufacturer",nil]];
[fetchRequest setReturnsDistinctResults:YES];
// Sort by manufacturer in ascending order
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"manufacturer" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSError *error = nil;
self.manufacturerNameList = [moc executeFetchRequest:fetchRequest error:&error];
if (error) {
// Handle the error
}
NSLog(@"The count of self.propertyNameList is %i",[self.propertyNameList count]);
Спасибо!