Ich versuche, ein einzelnes Objekt aus meiner Core-Datenbank zu holen, jedoch immer Null zurückgibt. Meine Methode basiert auf einer anderen Methode, die jeden Wert aus dem Coredata-Objekt zurückgibt, auf das ich zugreife.So holen Sie ein einzelnes Objekt aus Coredata mithilfe eines Prädikats
Ich habe dies vorher noch nie versucht und habe versucht, Äpfel Dokumente lesen, aber es macht einfach keinen Sinn .. das ist, was meine Methode sieht aus wie
- (NSMutableArray *)readSelectedInstall:(NSString *)projIDString {
NSManagedObjectContext *context = [self managedObjectContext];
if (context == nil) {
NSLog(@"Nil");
}
else {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"InstallProject" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ProjID==%@", projIDString];
[fetchRequest setPredicate:predicate];
NSError *error;
NSMutableArray *installProjectDictionaryArray = [[NSMutableArray alloc] init];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
for (InstallProject *installProj in fetchedObjects) {
NSMutableDictionary *tempInstallProjectDictionaryArray = [[ NSMutableDictionary alloc] init];
[tempInstallProjectDictionaryArray setObject:installProj.companyName forKey:@"CompanyName"];
[tempInstallProjectDictionaryArray setObject:installProj.projNo forKey:@"ProjNo"];
[tempInstallProjectDictionaryArray setObject:installProj.projID forKey:@"ProjID"];
[installProjectDictionaryArray addObject:tempInstallProjectDictionaryArray];
}
return installProjectDictionaryArray;
}
return nil;
}
jede Hilfe mich immer ein einzelnes Element zurückzukehren, das ist projid das projIDString paßt sehr geschätzt werden würde.
Ist 'Kontext == nil' ? Oder gibt 'executeFetchRequest '' nil' zurück? Im letzteren Fall, was ist der Wert von "Fehler"? –
stellt sich heraus, dass ich meine CoredataManagins-Klasse nicht zugewiesen habe .. Ich habe das jetzt getan und erhalte einen Fehler. "App aufgrund der nicht abgefangenen Ausnahme beenden 'NSInvalidArgumentException', Grund: 'nicht implementierte SQL-Generierung für Prädikat: (JEDES PROJID ENTHÄLT [cd]" 10000085 ")'" – HurkNburkS
"JEDES PROJID ENTHÄLT [CD] ..." ist nicht das Prädikat Sie zeigten in Ihrer Frage ... –