iOS 5 introdujo una nueva forma a buscar rápidamente los datos en un subproceso de fondo inicializando el MOC usando NSPrivateQueueConcurrencyType
y luego hacer la pelota en performBlock:
NSPrivateQueueConcurrencyType de Datos Básicos y compartir objetos entre hilos
Una de las reglas de oro de Core Los datos indican que no puede compartir un objeto gestionado entre hilos/colas. ¿Todavía es el caso con performBlock:
? Es la siguiente:
[context performBlock:^{
// fetch request code
NSArray *results = [context executeFetchRequest:request error:nil];
dispatch_async(dispatch_get_main_queue(), ^(void) {
Class *firstObject = [results objectAtIndex:0];
// do something with firstObject
});
}];
siendo inaceptable ya que estoy compartiendo mis resultados de la matriz/objetos entre la cola y la cola bg principal? ¿Todavía necesito usar los ID de objeto administrado para hacer eso?
¿Cuál es la fuente de esta información? Esto es ciertamente lo que esperaría que fuera el caso, pero la documentación de Apple solo establece que debe hacer operaciones de MOC en el bloque. No es explícito sobre los OM creados en el bloque. –
MOs pertenecen al contexto. No * son * seguros para hilos y, por lo tanto, solo deben tocarse dentro de la cola del contexto al que pertenecen. No está claro desde la documentación, pero eso es lo que intentó decir. Tengo esta información del equipo de Core Data. –
¿Dónde está la documentación? ¿Alguien tiene un enlace? – djskinner