Ошибка доступа к 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"]];

Я знаю, что это не дает прямого ответа на ваш вопрос, хотя, кажется, позволяет достичь того, что вы хотите сделать, гораздо проще.

Другие вопросы по тегам