我的应用程序的某些用户报告了仅在固件升级到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固件升级后删除并重新安装应用似乎可以解决问题。
对于原因可能是什么,我感到非常困惑。我真的很感激你的想法。
提前致谢!
答案 0 :(得分:2)
我在许多应用中都观察到了这种行为。我最好的猜测是它试图通过序列化的包加载以前的接口状态作为 - [UIViewController _loadViewFromNibNamed:bundle:]的参数,但是bundle类有人改变了它在4到5之间序列化的方式。
答案 1 :(得分:0)
看起来Apple改变了他们对NIB进行反序列化的方式。我已经改为使用未编译的NIB进行发货,而不是使用已编译的NIB进行发货。再次编译NIB可以解决问题。