J'essaie de créer une application iPhone Core Data. L'une des entités que je suis suivi est des voitures, et un attribut de chaque voiture est "fabricant".iPhone Core Data - Simple Query
Dans la section «modifier la voiture» de mon application, j'ai un UIPickerView qui doit être chargé avec chacun des fabricants uniques qui ont été précédemment entré dans le système. Ce que j'essaye de faire est de créer un NSFetchRequest pour obtenir un tableau d'attributs "manufacturer" uniques et l'utiliser pour peupler le UIPickerView. Le problème que je rencontre est que s'il y a zéro enregistrements ou 100 dans le magasin de données, il y a toujours un enregistrement dans la requête d'extraction exécutée à l'élément zéro avec une valeur @ "".
Est-ce que je fais cela mal ou est-ce qu'il y a un moyen plus facile de le faire? J'aimerais pouvoir exécuter une requête SQL rapide !!!
Mon code est ci-dessous:
// 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]);
Merci!
Je comprends ce que vous dites complètement, et cela me donnerait sûrement plus de flexibilité sur la route, mais le fait est que Cars est la seule entité dans le domaine, et je m'inquiète de l'ajout d'une autre entité (Manufacturer) à se soucier de rendre le code plus compliqué dans l'ensemble - étant donné que la seule chose que je veux faire avec les constructeurs est de les suivre par rapport à l'entité automobile.Par conséquent, pensez-vous que ce code est le moyen le plus simple d'y parvenir? –
Dans ce cas, je pense que le problème est que vous passez des noms de propriété et non NSPropertyDescriptions à setPropertiesToFetch et que vous traitez ensuite les résultats comme des entités Car, pas comme des chaînes constructeur. –