Tengo imágenes en coredata que estoy tratando de cargar perezosamente para una vista de tabla. Cada celda usa un observador para la entidad de datos central relacionada para actualizar la imagen cuando una esté disponible. El código correspondiente en la entidad es el siguiente:Obteniendo EXC_BAD_ACCESS al usar dispatch_async con Core Data
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// The heavy lifting seems to be during firing of the fault and accessing data,
// so i'm trying to do that in the background thread.
UIImage *i = [UIImage imageWithData:self.imageEntity.data];
// I now need to notify observers that the image is ready on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
[self willChangeValueForKey:@"image"];
image = i;
[self didChangeValueForKey:@"image"];
});
});
El proyecto utiliza ARC, ahora no recibo los errores de compilación o advertencias, y cuando lo ejecuto tipo de obras hasta que desplazarse rápidamente, y luego me sale un EXC_BAD_ACCESS en la línea cuando estoy declarando el i.
¿Qué me falta aquí?
¿Has probado con 'NSZombieEnabled'? – zoul
¿Qué ocurre si no usa dispatch_async? simplemente ejecute en el hilo principal –
NSZombie no arroja ninguna luz adicional para mí. Si no envío dispatch_async, bloqueará el hilo principal y se desplazará muy mal. – dizy