【发布时间】:2012-10-12 22:20:22
【问题描述】:
我的 iOS 应用程序在 iOS 5 和 iOS 6 上运行,但专注于 6 的功能。我最近尝试在 iOS 5.1 模拟器中测试我的应用程序(基础 SDK 为 5.0),它似乎工作正常,直到我点击在显示具有不同类的新视图控制器的按钮上。此时它崩溃了,我在输出日志中只剩下这个:
objc[3063]: EXCEPTIONS: throwing 0x9e85510 (object 0x9e84780, a NSException)
objc[3063]: EXCEPTIONS: searching through frame [ip=0x6d6a19 sp=0xbfffe020] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: searching through frame [ip=0x223dd83 sp=0xbffff200] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: unwinding through frame [ip=0x6d6a19 sp=0xbfffe020] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: unwinding through frame [ip=0x223dd83 sp=0xbffff200] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: handling exception 0x9e854f0 at 0x223de16
objc[3063]: EXCEPTIONS: rethrowing current exception
objc[3063]: EXCEPTIONS: searching through frame [ip=0x223dddf sp=0xbffff200] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: terminating
objc[3063]: EXCEPTIONS: searching through frame [ip=0x158eeed sp=0xbffff190] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: catch(id)
objc[3063]: EXCEPTIONS: unwinding through frame [ip=0x158eeed sp=0xbffff190] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: handling exception 0x9e854f0 at 0x158eeff
就是这样。我还在正在加载的类的标头和实现中设置了断点,并且没有一个断点被命中,这意味着应用程序在加载视图之前崩溃了。
我从来没有见过这样的事情,但是我做了一些研究,谷歌发现了一些与 NSArrays 和 NSPredicate 相关的东西(我的班级确实有),但我排除了这些解决方案,因为视图从未加载- 那么尚未分配/创建的 NSArray 怎么会导致我的应用程序崩溃呢?
我们将不胜感激任何提示、答案和帮助!
编辑:
我的项目使用:
- 故事板
- Xcode 4.5
- ARC
- 基础 SDK 为 iOS 5.0
没有额外的错误日志、调试消息等。以上是我得到的全部。我还尝试在某些我认为可能有问题的语句周围使用@try / @catch 条件,但是它们要么从未被调用,要么没有引发异常。
我的(id)init 方法也永远不会被调用。
我开始认为这又是那些奇怪的 Xcode 4 编译器问题之一......
编辑: 我还确保禁用了自动布局(尽管我不确定这是否是禁用它的正确位置,这是在 Navigator > File Inspector 中):
【问题讨论】:
-
代码执行是否在
loadView之前到达视图控制器的init方法? -
@RobertKarl 如果
init你的意思是(id)init那么没有。它什么都没有。 -
如果将按钮点击代码包装在@try/@catch 中并查看@catch 中是否有异常描述或调用堆栈符号?
-
@PhillipMills 我的项目使用情节提要,因此没有与按钮按下相关的“代码”。我在故事板中搜索了问题和未连接的插座等,但没有找到。我已经尝试包装所有我认为在 try / catch 中可能存在问题的不同语句,但这没有帮助。
-
我的镜头:您已为您的 xibs/storyboards 中的 uiviews 激活了自动布局,这是 iOS6 独有的功能。
标签: objective-c exception ios5 crash