SK9*_*SK9 5 iphone ipod-touch ios4 ios ios-3.x
我正在完成iOS 3.0的应用程序,最后在iPhone和iPod Touch上运行.它在iOS4.0及更高版本上运行良好,但是当我在运行iOS 3.0的第二代iPod Touch上进行回测时,启动图像显示并且我遇到以下内容:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x4e, 0x49, 0x42, 0x41, 0x72, 0x63, 0x68, 0x69)'
2012-01-15 09:35:53.025 MyApp[3026:207] Stack: (
808001701,
805397928,
807551015,
807550919,
810902709,
815043196,
815042704,
814682908,
814682012,
814970032,
814968048,
814966908,
839149932,
807750263,
807747947,
814678868,
814672532,
61527,
10764
)
terminate called after throwing an instance of 'NSException'
(gdb) backtrace
#0 0x31dd594c in __kill ()
#1 0x31dd5940 in kill ()
#2 0x31dd5934 in raise ()
#3 0x31deccfe in abort ()
#4 0x374ef848 in __gnu_cxx::__verbose_terminate_handler ()
#5 0x300166c0 in _objc_terminate ()
#6 0x374ecf3c in __cxxabiv1::__terminate ()
#7 0x374ecfb4 in std::terminate ()
#8 0x374ed0dc in __cxa_throw ()
#9 0x300165e4 in objc_exception_throw ()
#10 0x30224026 in +[NSException raise:format:arguments:] ()
#11 0x30223fc6 in +[NSException raise:format:] ()
#12 0x305564b4 in -[NSKeyedUnarchiver initForReadingWithData:] ()
#13 0x3094927c in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:] ()
#14 0x30949090 in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:] ()
#15 0x308f131c in -[UIApplication _loadMainNibFile] ()
#16 0x308f0f9c in -[UIApplication _runWithURL:sourceBundleID:] ()
#17 0x309374b0 in -[UIApplication handleEvent:withNewEvent:] ()
#18 0x30936cf0 in -[UIApplication sendEvent:] ()
#19 0x3093687c in _UIApplicationHandleEvent ()
#20 0x3204696c in PurpleEventCallback ()
#21 0x30254a76 in CFRunLoopRunSpecific ()
#22 0x3025416a in CFRunLoopRunInMode ()
#23 0x308f0354 in -[UIApplication _run] ()
#24 0x308eea94 in UIApplicationMain ()
#25 0x0000f056 in main (argc=1, argv=0x2ffff7c8) at ...... Classes/main.m:16
Current language: auto; currently objective-c
Run Code Online (Sandbox Code Playgroud)
任何想法是什么以及如何解决它?
我在Xcode 4.2.1中构建.
PS - 通过清除构建或重新保存.xib文件无法解决问题.有时应用程序将超过这个阶段,但是当它看到更晚的.xib时,显然会出现同样的原因,比如在加载视图控制器时.
我相信这个答案涵盖了 Ikuragames 可能给出的内容(他不在电脑旁边)。代表他解决 Xcode 4.2.1 中的问题,单击 .xib 文件,然后在右侧的文件属性面板中,将部署设置为“iOS 3.0”(在我的例子中)并将开发设置为“Interface Builder” 3.0”(同样是我的情况)。对项目中的每个 .xib 文件执行此操作。
值得记住的是,Xcode 4.2.1 很可能会在此处为部署设置默认值“iOS 5.0”,以匹配当前的 SDK,并为文档类型设置“Xcode 4.1”。为什么 Xcode 不只是将部署目标与项目部署目标相匹配,我不确定......
如果这仍然不起作用,或者您在这个阶段非常偏执,请捕获NSKeyedUnarchiver加载 .xib 文件时引发的异常,然后以编程方式创建视图。
