加载主XIB会使iOS 3.0上的应用程序崩溃

时间:2012-03-05 05:38:52

标签: ios exception xcode4.2 xib ios-3.x

感谢您花些时间阅读我的问题。 我有这个应用程序(在Cydia),大约有10%的用户使用iOS 3.0,所以我想在下次更新时支持它们。

我测试了运行的实际设备,iOS 4.0和5.0.1;它工作得很好。但是在iOS 3.0上它崩溃了一个例外:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x4e, 0x49, 0x42, 0x41, 0x72, 0x63, 0x68, 0x69)

显然在加载主XIB时,这是异常的回溯:

0  0x30016588 in objc_exception_throw ()
1  0x30224026 in +[NSException raise:format:arguments:] ()
2  0x30223fc6 in +[NSException raise:format:] ()
3  0x305564b4 in -[NSKeyedUnarchiver initForReadingWithData:] ()
4  0x3094927c in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:] ()
5  0x30949090 in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:] ()
6  0x308f131c in -[UIApplication _loadMainNibFile] ()
7  0x308f0f9c in -[UIApplication _runWithURL:sourceBundleID:] ()
8  0x309374b0 in -[UIApplication handleEvent:withNewEvent:] ()
9  0x30936cf0 in -[UIApplication sendEvent:] ()
10 0x3093687c in _UIApplicationHandleEvent ()
11 0x3204696c in PurpleEventCallback ()
12 0x30254a76 in CFRunLoopRunSpecific ()
13 0x3025416a in CFRunLoopRunInMode ()
14 0x308f0354 in -[UIApplication _run] ()
15 0x308eea94 in UIApplicationMain ()
16 0x00003886 in main (argc=1, argv=0x2ffff74c)

我已阅读并尝试thisthis。所以我把我的所有笔尖部署版本设置为3.0并开发到Interface Builder 3.0,但仍然没有运气。

2 个答案:

答案 0 :(得分:0)

在阅读了一些文档之后,很明显iOS 3.2之前不会从Xcode 4.2加载NIB,所以我最终用Xcode 3.2构建了项目,并将这些NIB复制到DerivedData目录下用Xcode 4.2创建的包中,好的部分是我仍然可以使用Xcode 4.2调试应用程序,不好的部分是,这有点hacky,但我没有选择。谢谢。

答案 1 :(得分:0)

我是伊曼纽尔的第二个回答。经过几个星期的拔毛,我想出了这个解决方案: Build universal app for iOS 3.0 using Xcode 4.3.x - NSKeyedUnarchiver Exception

相关问题