我在控制器中有大约15个UIButtons。我试图用一个简单的for循环清除其中的10个,但似乎出现了某种冲突。
当我点击清除按钮时,我会收到以下错误:
无法将类型为“_UISizeTrackingView”(0x18a023c)的值转换为“UIButton”(0x1899298)。 (lldb)
for循环是:
for var i = 0; i < 9; i++ {
button = view.viewWithTag(i) as! UIButton
button.setImage(nil, forState: .Normal)
}
我已经缩小了问题范围,发现一个项目正在使用标签0。我查看了视图控制器场景上的所有项目,但似乎没有冲突。我只看到一个按钮使用了tag=0。
我甚至通过将循环中的“i”替换为“0”,并得到了相同的问题来确认它。当我用“1”或“2”替换它时,单个图像可以正常工作。
有什么方法可以查看哪个对象正在使用标签0吗?我已经点击了它们所有(包括主“View”),但似乎找不到任何东西。
for in
遍历它们。我不知道 Swift,但在 Objective-C 中,for in
肯定比问题中原始的 C 风格的for
更快。 - nhgrif