Ich habe ein Problem, wo ich Entitäten A in einem Kontext einfügen. Gleich nachdem ich alle Einheiten einfügen ausführen AI eine Anfrage auf dem Kontext holen:NSFetchRequest kann Entität im Kontext nicht abrufen
NSEntityDescription* entity = [NSEntityDescription entityForName:@"A" inManagedObjectContext:ctx];
NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSError* fetchError;
NSArray* results = [ctx executeFetchRequest:fetchRequest error:&fetchError];
Dieser Code oben ist in der Lage, alle von ihnen zu bekommen und ich kann sie in der NSLog sehen ...
Recht ich nach auf dem gleichen Kontext versuchen, alle Einheiten zu holen A, das Alter = 5, wie diese:
NSEntityDescription* entity = [NSEntityDescription entityForName:@"A" inManagedObjectContext:ctx];
NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"%K == %@",attr,value];
[fetchRequest setPredicate:filter];
NSError* fetchError;
NSArray* results = [ctx executeFetchRequest:fetchRequest error:&fetchError];
THE (I "Alter" die attirbute und ein NSString @ "5" auf den Wert zuweisen) PROBLEM IST, dass, obwohl der NSLog eine Entität A mit Alter 5 diese letzte Abrufanforderung r zeigt ist immer Null! Nichts.
Irgendwelche Vorschläge? Warum zeigt das Abrufen von allen Entitäten mit einem Alter von 5 Jahren und das Filtern für ein Alter von 5 nur nicht gleich danach im selben Kontext?
Dank
Welcher Typ ist Alter im Modell? –
NSNumber (Integer 64), auch, ich habe gerade herausgefunden, dass, wenn ich das Prädikat zu @ "age == 5" hart Code, dann funktioniert es. Jetzt bin ich verwirrt. – zumzum
% @ mit einem String-Argument fügt Anführungszeichen für einen String-Vergleich ein. Wenn die Daten keine Zeichenfolge sind, wird es nicht vergleichen ... weshalb ich den Typ gefragt habe ... –