테이블 뷰를 지연로드하려고하는 큐레 데이터에 이미지가 있습니다. 각 셀은 관련 핵심 데이터 엔티티에 대한 관찰자를 사용하여 이미지를 업데이트 할 때이를 업데이트합니다. 다음과 같이 기업에 대한 관련 코드는 다음과 같습니다핵심 데이터와 함께 dispatch_async를 사용할 때 EXC_BAD_ACCESS 가져 오기
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.
무엇이 여기에 있습니까?
'NSZombieEnabled'를 시도 했습니까? – zoul
dispatch_async를 사용하지 않으면 어떻게됩니까? 그냥 메인 스레드에서 실행 –
NSZombie는 나를 위해 어떤 여분의 빛도 발산하지 않습니다. dispatch_async를하지 않으면 주 스레드를 차단하고 실제로 스크롤 할 수 없습니다. – dizy