Получение EXC_BAD_ACCESS при использовании dispatch_async с 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"];
  });
});

Проект использует ARC, я не получаю никаких ошибок или предупреждений компилятора, и когда я запускаю его, вроде работает, пока я не прокручиваю быстро, а затем я получаю EXC_BAD_ACCESS на line, когда я объявляю i.

Что мне здесь не хватает?

5
задан Brad Larson 29 February 2012 в 21:14
поделиться