【问题标题】:exc_bad_instruction exc_i386_invop on UIButton title changeexc_bad_instruction exc_i386_invop on UIButton 标题更改
【发布时间】:2014-06-17 16:36:19
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你确定 btnStop 不是nil
  • 是的,和iPhone版一样分配
  • 您说它在您的 iPhone 上没有问题 - 那么它在哪里有问题?你的意思是它只在模拟器上崩溃?在 iPad 上?

标签: ios objective-c uibutton swift


【解决方案1】:

我遇到了同样的情况:每次我尝试设置特定按钮的标题时,我都会收到您收到的确切错误。事实证明,问题根本不在于 UIButton,而在于稍后在代码块中使用带有类型转换的 arc4random()。没有意义,我知道;可能是 swift 中的一个 beta 错误,只是在错误的行上显示了崩溃;但这是让我再次运行的解决方案的参考: Crash when casting the result of arc4random() to Int

【讨论】:

  • 我遇到了同样的问题,错误是 Xcode 显示它崩溃的下面两行代码。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 2012-05-30
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多