2012-04-24 58 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

相關問題