nib对象获取不良访问权限,即使它已被属性保留

时间:2012-12-26 12:01:19

标签: iphone ios xib nib

我的nib文件有很多UIViews(超过100个),而且我正在使用Code创建500多个UIViews。

仅供参考,应用程序是一种带有块的游戏板。

问题,随机应用程序在玩游戏时会在nib对象上崩溃。我无法进行测试用例。但我可以说应用程序仅在Nib对象(IBOutlet)上崩溃。

每次只通过nib的IBOutlet上的错误访问。

我尝试使用retain创建IBOutlet属性。也可以合成,但随机得到同样的问题。

请帮我管理笔尖对象。

确切的错误消息是:EXC_BAD_ACCESS

这是Stacktrace

libobjc.A.dylib 0x3995e5aa objc_msgSend + 9
1WWS 0x00064437 0x5a000 + 42039
2WWS 0x00063b5d 0x5a000 + 39773
3Foundation 0x37df7539 + 200
4Foundation 0x37deedb9 + 840
5Foundation 0x37e673db + 102
6libdispatch.dylib 0x370b211f + 10
7libdispatch.dylib 0x370b14b7 + 22
8libdispatch.dylib 0x370b61bd + 224
9CoreFoundation 0x34d57f3b + 1290
10CoreFoundation 0x34ccaebd CFRunLoopRunSpecific + 356
11CoreFoundation 0x34ccad49 CFRunLoopRunInMode + 104
12GraphicsServices 0x3261d2eb GSEventRunModal + 74
13UIKit 0x342a72f9 UIApplicationMain + 1120
14WWS 0x0005b09f 0x5a000 + 4255

1 个答案:

答案 0 :(得分:0)

测试IBoutlet是否导致问题的一种方法是,断开所有IBoutlet视图。在视图didLoad方法中实例化它们并尝试运行您的应用程序。如果应用程序仍然崩溃,那么考虑它是内存问题。

如果app没有崩溃,则可能只是IBoutlet问题。

另一种方法是使用Instruments工具。

  1. 使用产品 - >分析以检查代码中的任何内存泄漏。
  2. 运行产品 - >个人资料 - >泄漏工具检查运行时泄漏。