Frage

Ich bin neu auf Kerndaten und versuche, alle Kinder mit einer Abfrage-Objekten verschiedenen Typen zu bekommen. Sagen, dass es ein „Animal“ Typ als Eltern und „Cat“, „Dog“ und „Bird“, wie Kinder. Ich mag die beiden Katzen und Hunde bekommen, aber nicht Vögel in einzelner Abfrage als Tier Objekte zurückgegeben. Ist es möglich?

War es hilfreich?

Lösung

Verwaltete Objekte haben eine entity Eigenschaft , so sollten Sie in der Lage zu kombinieren Kevin Sylvestre Lösung mit ein Prädikat von entity.name != "Bird"

.

Andere Tipps

Ja, es ist möglich:

// Load delegate from application and context from delegate.
SampleAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = delegate.managedObjectContext;

// Create new request.
NSFetchRequest *request = [[NSFetchRequest alloc] init];

// Create entity description using delegate object context.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Animal" inManagedObjectContext:context];

// Set entity for request.
[request setEntity:entity];
[request setIncludesSubentities:YES];

// Load array of documents.
NSError *error;
NSArray *animals = [context executeFetchRequest:request error:&error];

// Release request.
[request release];

// Access array.
for (id animal in animals) { }

Während diese (entity.name != "Bird") arbeiten können, wenn Sie nur „Katze“ haben, „Dog“ und „Bird“, funktioniert es nicht, wenn Sie später mehr „Animals“ hinzufügen. Sie können auch entity.name == "Dog" && entity.name == "Cat" verwenden

Es ist ein Fall von „... werden Sie jemals andere haben, in Ihrem Fall, Tiere?“

Viel Spaß =)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top