关于UIButton标题更改的exc_bad_instruction exc_i386_invop

时间:2014-06-17 16:36:19

标签: ios objective-c uibutton swift

尝试更改按钮上的标题时出现错误

btnStop.setTitle("Stop", forState: UIControlState.Normal)

发出错误:(exc_bad_instruction exc_i386_invop, subcode 0x0)

还有另一种设置按钮标题的方法吗?或者我做错了什么? btnStop变量是全局变量,所以我不明白它为什么会出现问题 - 因为它在我的iPhone上没有这个问题?

2 个答案:

答案 0 :(得分:1)

我被同样的情况所困扰:每当我尝试设置特定按钮的标题时,我都会收到您收到的确切错误。事实证明问题不在于UIButton,而是在代码块中使用带有类型转换的arc4random()。我知道,没有意义;可能是swift中的一个beta bug,只是在错误的行上显示崩溃;但这里是对让我重新开始运行的解决方案的引用: Crash when casting the result of arc4random() to Int

答案 1 :(得分:0)

由于这是Swift和beta Xcode,因此总有可能出现工具错误。假设您的代码中存在错误,我将运行Zombies工具并查看您是否正在访问过度释放的对象。

即使使用ARC,这仍然可能发生。您是否可能在某处使用弱引用来避免引用循环?

另外,根据我的经验,exc_bad_instruction通常是Apple代码中类似断言的调用的结果(它们故意放入导致崩溃的错误指令)并伴随着一些解释。你可以用堆栈跟踪粘贴完整的错误。