Asynchronous 怎么用?UITableViewCell与UIImageView通过ASINetworkQueue异步加载
我正在尝试使用Asynchronous 怎么用?UITableViewCell与UIImageView通过ASINetworkQueue异步加载,asynchronous,uitableview,uiimageview,asihttprequest,Asynchronous,Uitableview,Uiimageview,Asihttprequest,我正在尝试使用ASINetworkQueue异步加载表格单元格中的一些图像。我就是搞不懂,似乎也找不到一个简单的好例子 我能找到的最好的是这个,但它对我来说太过分了,有点太复杂了: 其他人是否有使用ASIHTTPRequest库执行此操作的提示/解决方案/代码?这里有一个从UIImageView派生的类,我使用它,也许这会对您有所帮助。(事实上,根据我的使用,我已经简化了一点,但这正是你所要求的!) 头文件UIHTTPImageView.h: #import "ASIHTTPRequest.h
ASINetworkQueue
异步加载表格单元格中的一些图像。我就是搞不懂,似乎也找不到一个简单的好例子
我能找到的最好的是这个,但它对我来说太过分了,有点太复杂了:
其他人是否有使用
ASIHTTPRequest
库执行此操作的提示/解决方案/代码?这里有一个从UIImageView派生的类,我使用它,也许这会对您有所帮助。(事实上,根据我的使用,我已经简化了一点,但这正是你所要求的!)
头文件UIHTTPImageView.h:
#import "ASIHTTPRequest.h"
@interface UIHTTPImageView : UIImageView {
ASIHTTPRequest *request;
}
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;
@end
和UIHTTPImageView.m:
#import "UIHTTPImageView.h"
@implementation UIHTTPImageView
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder {
[request setDelegate:nil];
[request cancel];
[request release];
request = [[ASIHTTPRequest requestWithURL:url] retain];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
if (placeholder)
self.image = placeholder;
[request setDelegate:self];
[request startAsynchronous];
}
- (void)dealloc {
[request setDelegate:nil];
[request cancel];
[request release];
[super dealloc];
}
- (void)requestFinished:(ASIHTTPRequest *)req
{
if (request.responseStatusCode != 200)
return;
self.image = [UIImage imageWithData:request.responseData];
}
@end
这似乎正是我要找的。不过,我有一个问题:如果表中的行数非常大,那么它不会使用“网络队列”,它不会过载吗?它使用ASIHTTPRequest的共享队列,默认情况下最多可以同时下载8次。如果需要,您可以使用类似[[ASIHTTPRequest sharedQueue]setMaxConcurrentOperations:2]的方法来减少这种情况。(注意:需要git、v1.7和更早版本的最新版本asihttprequest,请勿公开sharedqueue。)再次感谢您的帮助!像你这样的人真是太棒了!我知道我很笨。如何使用它与我的UIimageView@carbonr将UIImageView替换为UIHTTPImageView,然后只需使用[img setImageWithURL:url占位符:nil];