加载NIB时应用程序崩溃 - 但仅在固件升级到iOS 5之后

时间:2011-10-19 14:25:37

标签: iphone ios crash ios5 nib

我的应用程序的某些用户报告了仅在固件升级到iOS 5后打开应用程序时发生崩溃。在固件升级之前一切都很好 - 包括运行应用程序并升级到较新版本的应用程序然后运行它

崩溃日志表示加载NIB时发生崩溃:

0   CoreFoundation                  0x32bb38bf __exceptionPreprocess + 163
1   libobjc.A.dylib                 0x36a1d1e5 objc_exception_throw + 33
2   CoreFoundation                  0x32bb37b9 +[NSException raise:format:] + 1
3   CoreFoundation                  0x32bb37db +[NSException raise:format:] + 35
4   UIKit                           0x3169a747 -[UINib instantiateWithOwner:options:] + 1567
5   UIKit                           0x3160a9cb -[UIViewController _loadViewFromNibNamed:bundle:] + 247
6   UIKit                           0x314e9ea1 -[UIViewController loadView] + 89
7   UIKit                           0x3145f78b -[UIViewController view] + 51
8   UIKit                           0x3146bc39 -[UIViewController contentScrollView] + 25
9   UIKit                           0x3146baa9 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 37
10  UIKit                           0x3146b98f -[UINavigationController _layoutViewController:] + 35
11  UIKit                           0x3146b211 -[UINavigationController _startTransition:fromViewController:toViewController:] + 501
12  UIKit                           0x3146af53 -[UINavigationController _startDeferredTransitionIfNeeded] + 251
13  UIKit                           0x3145f673 -[UINavigationController pushViewController:transition:forceImmediate:] + 807
14  UIKit                           0x3145f349 -[UINavigationController pushViewController:animated:] + 37

出于某种原因,在 iOS 5固件升级后删除并重新安装应用似乎可以解决问题。

对于原因可能是什么,我感到非常困惑。我真的很感激你的想法。

提前致谢!

2 个答案:

答案 0 :(得分:2)

我在许多应用中都观察到了这种行为。我最好的猜测是它试图通过序列化的包加载以前的接口状态作为 - [UIViewController _loadViewFromNibNamed:bundle:]的参数,但是bundle类有人改变了它在4到5之间序列化的方式。

答案 1 :(得分:0)

看起来Apple改变了他们对NIB进行反序列化的方式。我已经改为使用未编译的NIB进行发货,而不是使用已编译的NIB进行发货。再次编译NIB可以解决问题。