Загрузка изображений из асинхронного NSURL с RestKit - PullRequest
6 голосов
/ 21 марта 2012

Есть ли в RestKit оболочка или какая-то встроенная функция для загрузки UIImage из NSURL асинхронно с использованием обратных вызовов или блоков?Я не смог найти такой метод в RestKit документах.Если нет, какова хорошая стратегия для реализации отложенных загруженных асинхронных изображений из NSURL с использованием RestKit в максимально возможной степени?

Ответы [ 2 ]

19 голосов
/ 21 марта 2012

Не уверен насчет решения RestKit, но SDWebImage - это библиотека, которая позволит вам легко асинхронно загружать изображения, добавляя категорию в UIImageView, поэтому все, что вам нужно написать, это (например):

[myImageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
5 голосов
/ 20 августа 2012

Используя RestKit, вы можете использовать RKRequest для загрузки данных для изображения таким образом, как:

RKRequest* request = [RKRequest requestWithURL: url];

request.onDidLoadResponse = ^(RKResponse* response) {
    UIImage* image = [UIImage imageWithData: response.body];
    // do something interesting with the image
};

request.onDidFailLoadWithError = ^(NSError* error) {
    // handle failure to load image
}

[imageLoadingQueue addRequest: request];

Обратите внимание, что даже в случае onDidLoadResponse вы можете проверить response, чтобы убедиться, что тип данных соответствует ожидаемому. Использованную выше очередь загрузки изображений можно создать так:

imageLoadingQueue = [RKRequestQueue requestQueueWithName: @"imageLoadingQueue"];
[imageLoadingQueue start];
...