2014-05-10 132 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