我有一些代码返回一个包含2个对象的结构(声明为id
)。
当尝试使用其中一个对象时,我得到一个EXC_BAD_ACCESS并且应用程序崩溃了。这只发生在设备(ipad)而非模拟器中。
我已将NSZombieEnabled设置为YES,但是没有信息写入控制台。 我不知道我在Xcode 4中使用工作区是一个问题,我的应用程序是一个项目,另一个是构建我的应用程序中使用的库。 EXC_BAD_ACCESS正在第二个项目中发生,所以我不知道NSZombieEnabled是否会应用于第二个项目?
我该如何解决这个问题?特别是因为它只发生在设备上(甚至在模拟器上按计划进行),它是在第二个项目中?
编辑:This is the method,其中EXC_BAD_ACCESS出现在第62行的sortRange.lower上 -
答案 0 :(得分:1)
NSZombieEnabled只能在模拟器上运行,而不能在设备上运行,所以它可能隐藏了这个问题。运行产品>分析(⇧⌘B)寻找线索。不看代码就更难说。正如Mihai所说,您的对象可能已过度释放,这是EXC_BAD_ACCESS的最常见原因。
答案 1 :(得分:0)
在您尝试访问它之前,似乎您的某个对象已自动释放。由于iPad的内存少于您运行它的计算机,因此它的发布速度更快,因此无法使用它。在获得错误的行之前尝试NSLog这两个对象,看看其中一个是问题,然后追溯到它的原点并以某种方式保留它。在完成使用后也不要忘记释放它。一些示例代码很有用。