Soy nuevo en los datos básicos e intento obtener todos los objetos secundarios de varios tipos con una consulta. Supongamos que hay un tipo "Animal" como padre y "Gato", "Perro" y "Ave" cuando eran niños. Me gustaría obtener tanto gatos como perros, pero no Birds en una sola consulta devuelta como objetos de Animal. ¿Es posible?¿Cómo se usa NSPredicate para atrapar objetos secundarios?
Respuesta
Managed objects have an entity
property, por lo que debe ser capaz de combinar con Kevin Sylvestre's solutiona predicate de entity.name != "Bird"
.
Sí, es posible:
// 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) { }
gracias por la respuesta rápida. Lo siento, olvidé mencionar lo más importante: hay un hijo más (por ejemplo, "Ave"). Lo que necesito es obtener tanto gatos como perros, pero NO aves. He editado la pregunta principal – cocoapriest
Si bien esto (entity.name != "Bird"
) puede funcionar si solo tiene "Gato", "Perro" y "Ave", no funciona si luego agrega más "Animales". También puede usar entity.name == "Dog" && entity.name == "Cat"
Es un caso de "... ¿Alguna vez tendrá otro, en su caso, Animales?"
Have fun =)
- 1. Personalizado XmlSerialization para objetos anidados/secundarios
- 2. Filtrado NSArray de objetos NSDictionary utilizando NSPredicate
- 3. Core Performance Data: NSPredicate comparar objetos
- 4. ¿Cómo obtener valores para objetos secundarios utilizando Dapper ORM?
- 5. ¿Se usa mucho el burlarse de objetos?
- 6. Cómo se llaman funciones de objetos padre en objetos secundarios en javascript
- 7. ¿Qué método en Java se usa para destruir sus objetos?
- 8. Agrupando objetos secundarios en WPF TreeView
- 9. NHibernate Eager carga multinivel objetos secundarios
- 10. ¿Cómo configuro un NSPredicate para buscar objetos que tengan un atributo nulo?
- 11. subclases NSPredicate para agregar operador
- 12. objetos secundarios en rdlc (Studio 2010RC)
- 13. cómo atrapar un int
- 14. NSPredicate para la búsqueda regular
- 15. Suscribirse a INotifyPropertyChanged para anidados (secundarios) los objetos
- 16. ¿Para qué se usa + =?
- 17. ReflectionException no se puede atrapar?
- 18. Cómo atrapar el jQuery.event.trigger()?
- 19. ¿Alternativa para atrapar en D?
- 20. NSPredicate: ¿cómo hacer NOT EndsWith?
- 21. ¿Cómo se usa preg_match para buscar espacios?
- 22. ¿Cómo se usa AWS SDK para iOS?
- 23. ¿Cómo se usa Google Guice para crear objetos que requieren parámetros?
- 24. Cómo atrapar HttpRequestValidationException en producción
- 25. ¿Al establecer objetos a cero cuando se usa ARC?
- 26. ¿Cómo se usa gdb?
- 27. mso - cómo se usa
- 28. ¿Cómo se usa PowerShell?
- 29. ¿Cómo puedo eliminar objetos secundarios cuando el padre se elimina en los rieles?
- 30. ¿Cómo se usa find_module?
entidad es un método, no una propiedad .. – cocoapriest
Es una propiedad informal, en la medida en que puede usar KVC para acceder a ella (ya que hay un método allí), a diferencia de una formal ('@ propiedad'). –
En realidad, no puede usar este método con una tienda SQLite porque la propiedad 'entidad' no está disponible cuando los objetos tienen una falla. No tiene más remedio que hacer un paso de filtro posterior a la búsqueda. –