2012-04-24 53 views
0

如标题所示,我需要获取图像并将其放入数组中。使用Afnetworking获取UIImageView并将其放入数组

UIImageView *myImage = [[UIImageView alloc] init]; 
[myImage setImageWithURL:[NSURL URLWithString:@"http://host.com/images/1/1.png"] placeholderImage:[UIImage imageNamed:@"page3.png"]]; 
[items addObject:myImage]; 

的问题是,在加载图像,代码继续,没有什么把数组中得到,其实我想一个空的UIImageView被插入。

我该如何解决这个问题?

在旁注中,我使用iCarousel显示图像,在数据源中获取图像数组并显示它们。我可以修改iCarousel吗?

在此先感谢。

+0

你应该看看做异步调用,并看看如果你还没有实现AFNetworking委托。 – danielbeard 2012-04-24 02:07:10

+0

能否详细说明一下?谢谢 – Simon 2012-04-24 02:11:19

+0

好吧,如果这段代码在主线程上运行,那么应用程序会在下载每个图像(使UI停止响应输入)的同时等待,使用回调意味着应用程序可以在后台下载图像,同时用户可以继续使用该应用程序。 – danielbeard 2012-04-24 02:17:26

回答

4

可以使用setImageWithURLRequest方法,得到成功消息或当它已经使用下述方法完成,例如执行UI更新:

- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest 
      placeholderImage:(UIImage *)placeholderImage 
        success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success 
        failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure; 

下面是一个例子(未测试)

[image setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"host.com/images/1/1.png"]] placeholderImage:[UIImage imageNamed:@"page3.png"] 
        success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){ 
          //reload data here 
        } 
        failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){ 
          //handle errors here 
        } 
+0

那就是我所尝试的,但我得到了这个错误 语义问题:不兼容的指针类型发送'void(^)(void)'参数的类型为'void(^)(NSURLRequest * __ strong,NSHTTPURLResponse * __ strong ,UIImage * __ strong)' 我想我应该是一些如何传递给块? – Simon 2012-04-24 02:30:54

+0

更新我的答案,现在应该工作 – danielbeard 2012-04-24 02:35:55

+0

得到它的工作,感谢您花时间来帮助我。干杯 – Simon 2012-04-24 02:44:56

相关问题