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];