【问题标题】:-[NSThread _nq:]: message sent to deallocated instance 0x1fdf5040 (lldb)-[NSThread _nq:]:消息发送到已释放实例 0x1fdf5040 (lldb)
【发布时间】:2013-05-15 07:34:14
【问题描述】:
    -[NSThread _nq:]: message sent to deallocated instance 0x1fdf5040
(lldb) 

这是我的应用程序进入后台时遇到的一次崩溃。在 iphone 4 中它正在工作。它发生在 iphone 5 中。有什么可能性以及我们如何解决它?

【问题讨论】:

  • 从您提供的信息我们只能分析出您在使用NSThread时似乎有内存问题。由于 _nq 似乎是私有的 Apple Api,我假设这是在执行其他操作时发生的 - 您能否发布发生此崩溃的堆栈跟踪或您的方法?
  • 我在哪里得到堆栈跟踪?发生的一切是每当我的应用程序进入后台时,它都会以相同的原因崩溃
  • 你的应用在后台进入时在做什么?您是否在进行任何后台操作,例如网络呼叫、音频会话等?在 XCode 中为 objc_exception_throw 添加断点。执行此操作的过程可以是found here。通过这种方式,您可以在应用崩溃时检查堆栈跟踪

标签: ios objective-c ios6 iphone-5


【解决方案1】:

您必须运行您的项目 Zombies instrument.For 查找哪个类或哪个对象的错误。点击 Command+I 来分析应用程序并选择 Zombies 仪器(您必须在模拟器上运行)。如果您遇到了僵尸,您可以显示该对象的整个内存历史记录(每个保留/释放),这对于跟踪错误非常有帮助。

僵尸的详细信息见这里

http://www.codza.com/how-to-debug-exc_bad_access-on-iphone

How to enable NSZombie in Xcode?

【讨论】:

    【解决方案2】:

    首先感谢您的帮助。

    我自己解决了我的问题并为你分享。对我来说,它发生了一些在后台运行的线程。当应用程序进入后台时,该线程失去了目的地。这使应用程序崩溃。

    我做线程等到完成的一些方法在任何地方都没有,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多