Если все, что вы пытаетесь сделать - это поддерживать поток пользовательского интерфейса, установите короткий метод для загрузки его в фоновом режиме и обновите imageView, когда это будет сделано:
-(void)backgroundLoadImageFromPath:(NSString*)path {
UIImage *newImage = [UIImage imageWithContentsOfFile:path];
[myImageView performSelectorOnMainThread:@selector(setImage:) withObject:newImage waitUntilDone:YES];
}
Это предполагает myImageView
является переменной-членом класса.Теперь просто запустите его в фоновом режиме из любого потока:
[self performSelectorInBackground:@selector(backgroundLoadImageFromPath:) withObject:path];
Обратите внимание, что в backgroundLoadImageFromPath
вам нужно подождать, пока не закончится селектор setImage:
, в противном случае пул автоматического выпуска фонового потока может освободить изображение до того, какметод setImage:
может сохранить его.