2010-11-23 4 views
1

Angenommen, ich habe eine Core Data-Entität namens Person. Wie würde ich ein NSArray von Personen erhalten, deren Eigenschaften bestimmten Werten entsprechen? Zum Beispiel jemand eines bestimmten Alters, Größe, Gewicht oder ... oder jemand mit einem in der Höhe, Gewicht und Alter sind bestimmte Werte ...Verwenden von NSPredate, um ein Array von Core Data-Objekten zu erhalten?

Kann ich eine NSPredicate wie so:

NSPredicate *pred = 
[NSPredicate predicateWithFormat: 
@"(age == 25) OR (height_in_cms == 185) OR (age == 30 AND height_in_cms == 170 AND weight_in_kgs == 80)"; 
// All properties are NSNumber 

Antwort

1

pflegen Ich bin kein Experte für die Syntax für predicateWithFormat:, aber Sie haben die grundlegenden Kern. Details zum Format finden Sie in Apples Predicate Programming Guide. Wenn Sie sich fragen, was mit dem Prädikat zu tun, wenn Sie es haben, hier ist ein Ausschnitt, das Sie die Schritte zeigt:

// Create a fetch request. 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 

// Set the entity for the fetch request. 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:managedObjectContext]; 
[fetchRequest setEntity:entity]; 
[entity release]; 

// Set the predicate for the fetch request. 
[fetchRequest setPredicate:predicate]; 

// Perform the fetch. 
NSError *error; 
NSArray *array = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
[fetchRequest release]; 

Wenn Sie die Ergebnisse sortiert werden sollen, können Sie eine Reihe von Sortier Deskriptoren passieren zu der Abrufanforderung unter Verwendung von setSortDescriptors: vor dem Ausführen des Abrufs.

1

Sie können der angegebenen Anweisung folgen, wenn Sie diesen Wert in einer Variablen haben.

[fetchResults filterUsingPredicate: [NSPredicate predicateWithFormat: @ "age ==% i ODER height ==% i AND weight ==% i", Alter, Größe, Gewicht]];

Und auch Ihr Ansatz ist richtig, falls für bestimmte Werte, aber Ihre Aussage mit Syntaxfehler so richtige Syntax

Verwandte Themen