Это написано в моем viewDidLoad
методе
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *op = [[NSInvocationOperation alloc]
initWithTarget:self
selector:@selector(downloadImage)
object:nil];
[queue addOperation:op];
// Остальное в других методах;
- (void)downloadImage{
NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:person.picURL]];
UIImage* image = [[UIImage alloc] initWithData:imageData] ;
[self showImage: image];
}
Я попытался добавить следующие коды выше [self showImage: image];
и я закончил с исключением.
1.) [self performSelectorOnMainThread:@selector(showImage:) withObject:image waitUntilDone:NO];
2.) [self performSelectorInBackground:@selector(showImage:) withObject:image];
// Это код showImage
.
- (void)showImage:(UIImage *)img {
if (img != nil)
{
myImageView = [[UIImageView alloc] initWithImage:img];
myImageView.frame = CGRectMake(20, 20, 132, 124);
[scrollView addSubview:myImageView];
[pictureOfPerson setImage:img];
}
}
Я пытаюсь Asynchronously
загрузить изображение и кэшировать его.Изображение загружается Asynchronously
, но я не уверен, кэшируется ли оно.
1.) Как кэшировать изображение и использовать его при повторной загрузке представления
2.) Покаизображение загружается, что если я нажму на другой вид.Тогда мне нужно остановить загрузку.Как я могу написать этот код.Я знаю, что должен написать это в методе viewDidDissapear.
3.) Мой код правильный.Я что-то пропустил или есть лучший способ сделать это?если да, то учебник или пример кода, пожалуйста