Iphone 下载数据以填写“;占位符;在另一个线程上的UITableViewCell中防止延迟

Iphone 下载数据以填写“;占位符;在另一个线程上的UITableViewCell中防止延迟,iphone,ios,multithreading,uitableview,Iphone,Ios,Multithreading,Uitableview,我拥有的是一个带有UITableViewController的应用程序,其中填充了自定义UITableViewCells。我有一些数据可以提供给手机,但是我需要下载一些额外的内容(图片等) 因此,我在viewDidLoad方法中所做的是,初始化一个UITableViewCell对象,用我已有的信息填充所有标签。然后我启动cell类的一个方法来下载数据。处理完特定的单元格后,我将其放入NSMutableArray并继续处理下一个单元格 然后在cellForRowAtIndexPath方法中,我从可

我拥有的是一个带有UITableViewController的应用程序,其中填充了自定义UITableViewCells。我有一些数据可以提供给手机,但是我需要下载一些额外的内容(图片等)

因此,我在viewDidLoad方法中所做的是,初始化一个UITableViewCell对象,用我已有的信息填充所有标签。然后我启动cell类的一个方法来下载数据。处理完特定的单元格后,我将其放入NSMutableArray并继续处理下一个单元格

然后在cellForRowAtIndexPath方法中,我从可变数组返回特定索引处的单元格

发生的事情是,直到所有的数据都没有下载,我的tableView被卡住了。。。我不确定这是否是正确的方法,但我认为我必须启动一个方法,下载额外的内容,然后在另一个线程上填充到单元格中。我该怎么做


提前多谢

正如rckoenes所建议的那样,使用AFNetworking works!:)我认为,对于那些仍然没有ARC的人来说,另一种选择将是一种迫切的要求

以下是我下载图像的代码:

-(void)getImageFromUrl:(NSURL *)url{
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    AFImageRequestOperation *op = [AFImageRequestOperation imageRequestOperationWithRequest:request imageProcessingBlock:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *img) {
        [self.image setImage:img];

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {

    }];
    [op start];
}
想要一个简单的解决方案吗?使用时,它们有一个用于
UIImageView
的特殊扩展类。您只需调用
[imageView setImageWithURL:imageURL]所有操作都在sperate线程中完成,
NSURLCache
用于缓存。