Datos básicos: compartiendo NSManagedObjects entre múltiples hilos

Sufrí todas las consecuencias de usar un solo MOC en varios subprocesos: mi aplicación se bloquea en puntos aleatorios porque el MOC se creó en el subproceso principal y también lo uso para llenar el DB en otro subproceso. Aunque el código está sincronizado (@synchronize) usando un singlet global en la aplicación se bloquea. Leí que usar un MOC separado para cada hilo hará que todo esté bien, pero también leí que se considera también un mal enfoque para compartir NSManagedObjects en todos los hilos.

Mi caso de uso es el siguiente: 1) Cargo y analizo XML de un servidor y durante el análisis inserto cada NSManagedObject nuevo en la base de datos. Todo esto sucede en un hilo separado. 2) Desde el hilo principal, el usuario interactúa con la IU que lee los datos de la base de datos.

En ambos hilos utilizo NSManagedObjects. ¿Cómo me sugieres que arregle esto? Ya fallé varias veces.

La mayoría de las veces, la aplicación se crea con un error que sugiere que estoy modificando una colección al mismo tiempo que la enumero, lo cual no es cierto ya que el código está sincronizado y, mientras lo estoy haciendo, no ocurre ninguna modificación y viceversa. Guardar una vez que haya terminado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta