使用RestKit从NSURL异步加载图像

tac*_*cos 6 asynchronous objective-c uiimageview ios restkit

是否有包装或某种内置的功能可在RestKit加载UIImageNSURL异步使用回调或阻止?我在RestKit文档中找不到这样的方法.如果没有,那么尽可能多地NSURL 使用 延迟加载的异步映像的好策略是什么RestKit

jon*_*oll 19

不确定RestKit解决方案,但SDWebImage 是一个库,可以让你通过向UIImageView添加一个类别来异步加载图像,所以你要编写的就是这个(例如):

[myImageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
Run Code Online (Sandbox Code Playgroud)

  • 好吧,那真是太棒了......我把它拿起并在<5分钟内完成,没有想到.我会坚持接受,直到我看到有任何基于RestKit的解决方案. (3认同)

tga*_*aul 5

使用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];
Run Code Online (Sandbox Code Playgroud)

请注意,即使在这种onDidLoadResponse情况下,您也可能需要检查response以确保数据类型符合您的预期.上面使用的图像加载队列可以像这样创建:

imageLoadingQueue = [RKRequestQueue requestQueueWithName: @"imageLoadingQueue"];
[imageLoadingQueue start];
Run Code Online (Sandbox Code Playgroud)