2014-05-10 135 views
0

我有一個圖像緩存類,它可以根據需要下載圖標並緩存它們。在我的視圖控制器,在viewDidAppear,我有:UIImageView不顯示新圖像

// (showIcon is a UIImageView from the storyboard) 
showIcon.image = [[LRImageCache imageCache] imageForURL:iconURL completionTarget:self action:@selector(updateImage:)]; 

如果圖像已經緩存,這裏返回,並正確顯示。否則,將返回一個佔位符圖像,緩存類嘗試下載圖像。當(如果)成功,它調用目標/行動:

- (void)updateImage:(UIImage *)image 
{ 
    showIcon.image = image; 
} 

設置在該行斷點證實,「形象」是正確的,下載的圖像 - 但它不顯示!

我不禁想我失去了一些東西真的很明顯...

+0

是對showIcon。 imageview連接到你的連接檢查器? – DominicanCoder

+0

'showIcon'可能是'nil'。當你調試'image'時,你還可以檢查'showIcon'的值? – Aaron

+0

'showIcon'已連接。它不是'無' - 它有sa我的地址(就像你所期望的那樣,是一個實例變量!),就像在viewDidAppear中成功賦值時一樣。 – user3623992

回答

0

您正在調用哪一個期待一個參數updateImage:,與您的代碼調用該方法,但你不提供論據。

考慮創建的圖像對象的第一像這樣:

UIImage *myImage = [[LRImageCache imageCache] imageForURL:iconURL completionTarget:self action:@selector(updateImage)]; 

從updateImage方法卸下參數(記設定圖像時,從選擇器取出結腸

- (void)updateImage{ 
    showIcon.image = myImage; 
} 
+0

'updateImage'由'imageCache'類(我沒有顯示代碼)調用。它提供了一個參數,當調試時我可以看到這個參數是XCode中'快速預覽'的預期圖像。爲了測試,我在'updateImage'方法中創建了一個新的'UIImageView',爲其分配了傳遞的'image'並將其添加到主視圖 - 圖像顯示正確。 – user3623992

+0

嘗試將NSLog添加到updateImage方法以查看它是否被調用。 – DominicanCoder