1

我有一个对象数组。我的对象包含一个 URL( NSString) 和一个图像 ( UIImage)。我调用一个网络服务来填充图像的所有 url,然后我想异步获取图像并用图像更新对象。

当我试图确定从 URLConnection 接收到数据时需要更新的数组索引时,我被卡住了。有什么想法吗?

4

3 回答 3

1

您需要将 NSURLConnection 映射到您的数组。您可以将 NSURLConnection 子类化以添加成员,从而允许存储标签标识符,例如索引。

可能创建一个 NSDictionary 会更简单,其中每个 NSURLConnection 充当键,NSNumber 中的 arrayIndex 将作为值存储。

在您使用的回调方法中,您可以使用相应的 NSURLConnection 作为其键来访问您的字典。

int arrayIndex = [[myDictionary objectForKey:urlConnection] intValue]
于 2012-07-19T12:32:58.613 回答
0

要从网络获取 UIImage,请多次使用它而不是 URLConnection。

 UIImage *image=[[UIImage alloc]initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL of the image"]]];

然后在 UIImageView 中异步加载您的图像。

于 2012-07-19T12:31:57.150 回答
0

我建议您使用 GCD 在后台下载图像。如果您想参考,这里是教程:- http://blog.slaunchaman.com/2011/02/28/cocoa-touch-tutorial-using-grand-central-dispatch-for-asynchronous-table-view-cells /

以下是您可以使用的代码:-

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);

dispatch_async(queue, ^{
    UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

    dispatch_sync(dispatch_get_main_queue(), ^{
        [yourImageView setImage:image];
    });
});
于 2012-07-19T12:43:29.750 回答