Ошибка доступа к UIImage за пределами AFImageRequestOperation ImageRequestOperationWithRequest: блок успеха
Я пытаюсь отобразить изображение, возвращенное из AFImageRequestOperation ImageRequestOperationWithRequest: но похоже, что изображение доступно только внутри блока успеха. Я попытался сохранить его в переменную экземпляра класса, но когда я NSLog это, он отображается как ноль. Однако, когда я NSLog та же переменная экземпляра в блоке успеха, после установки его с извлеченным UIImage, он на самом деле показывает шестнадцатеричное значение (как и ожидалось). Любая помощь здесь с благодарностью.
Вот код, где возникает проблема:
imageRequest = [AFImageRequestOperation imageRequestOperationWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] success:^(UIImage *image) {
globalImage = image; // trying to have accessible image outside of success handler
[self setImageThumbImage:image]; trying to set image that class will use
NSLog(@"Image is: %@", self.albumThumbImage); // logs an actual value
imageRequest = nil;
}];
[albumImageRequest start];
NSLog(@"The second albumThumbImage retrieval returns: %@", globalImage); // logs null
return self;
}
1 ответ
Почему бы просто не использовать добавленные методы для UIImageView, предоставляемые AFNetworking?
Со страницы git:
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)];
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];
Я знаю, что это не дает прямого ответа на ваш вопрос, хотя, кажется, позволяет достичь того, что вы хотите сделать, гораздо проще.