我正在尝试更改UIImageView的iamge,为此,我正在使用viewWithTag获取UIImageView,我遇到了消息“ - [UIView setImage:]:无法识别的选择器发送到实例0x9161390 “
我知道我必须施放物体,我已经这样做了:
UIImageView *iv = (UIImageView *)[self.view viewWithTag:[[data objectForKey:@"tag"] intValue]];
[iv performSelectorOnMainThread:@selector(setImage:) withObject:img waitUntilDone:YES];
(我正在使用performSelectorOnMainThread,因为它是一个后台线程,但已尝试“iv.image = ...”)。
我收到同样的错误。
任何人都能看到我所缺少的东西吗?
Thnks!
编辑:
非常感谢(非常快!)的答案。我可以解决它。
我正在使用:
[self.view viewWithTag:[[data objectForKey:@"tag"] intValue]]
但是UIImageView在ScrollView中而不是主视图,所以使用:
[scroll viewWithTag:[[data objectForKey:@"tag"] intValue]]
相反,修复它。
(即使实际上没有设置图像,但我没有得到崩溃)。
再次感谢!
答案 0 :(得分:1)
首先需要检查您获得的值是否为UIImageView类。可能存在从数据字典或数组中检索值的问题。可能是在tableView或ScrollView的子视图中,然后您需要取而不是self.view。它可能是不同的。所以你需要使用断点来调试你的代码。如果这个东西写了,那么检查你传递的setImage
方法的参数。请详细说明您的方法然后我可以简单回答。
这里你传递了两个setImage
的参数。
可能会对你有帮助。
答案 1 :(得分:0)
您可能会从非标签的数据中请求“密钥值”。我建议不要使用对象值作为键,因为它为这么多神秘问题打开了大门。
这与其他人在您的评论中发布的内容一致:您发布的代码非常模糊,而且因为您使用的是objectForKey
而没有显示data
是什么,所以这是一个猜测游戏问题是。