【问题标题】:iPhone Simulator chrashes in NSKeyedUnarchiver after setting base SDK设置基础 SDK 后,iPhone 模拟器在 NSKeyedUnarchiver 中崩溃
【发布时间】:2010-01-28 15:04:57
【问题描述】:

我在 xcode(雪豹上的 3.2)中使用基础 sdk 3.1.2 开始了一个项目。现在我将此设置更改为 3.0,它编译时没有警告。在设备上运行应用程序没有问题,但模拟器每次启动时都会崩溃,但以下异常:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“[NSKeyedUnarchiver initForReadingWithData:]:无法理解的存档(0x4e、0x49、0x42、0x41、0x72、0x63、0x68、0x69)”

我不使用NSKeyedUnarchiver,那么为什么应用程序会尝试调用它?什么档案是不可理解的?我在构建之前重置了模拟器,所以周围没有 userDefaults 或其他任何东西。
感谢您的帮助!

【问题讨论】:

    标签: iphone objective-c xcode


    【解决方案1】:

    我用这个详细的堆栈跟踪解决了这个问题:

    #0  0x302ac924 in ___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___  
    #1  0x904a3509 in objc_exception_throw  
    #2  0x3028e5fb in +[NSException raise:format:arguments:]  
    #3  0x3028e55a in +[NSException raise:format:]  
    #4  0x30513b77 in -[NSKeyedUnarchiver initForReadingWithData:]  
    #5  0x30ab4b2a in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:]  
    #6  0x30ab6eb3 in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:]  
    #7  0x308f85f1 in -[UIApplication _loadMainNibFile]  
    #8  0x30901a15 in -[UIApplication _runWithURL:sourceBundleID:]  
    #9  0x308fef33 in -[UIApplication handleEvent:withNewEvent:]  
    #10 0x308fad82 in -[UIApplication sendEvent:]  
    #11 0x309013e1 in _UIApplicationHandleEvent  
    #12 0x32046375 in PurpleEventCallback  
    #13 0x30245560 in CFRunLoopRunSpecific  
    #14 0x30244628 in CFRunLoopRunInMode  
    #15 0x308f930d in -[UIApplication _run]  
    #16 0x309021ee in UIApplicationMain  
    #17 0x0000255c in main at main.m:14  
    

    应用程序在调用 mainNibFile 时崩溃。而且我不知道为什么,只是简单地重新保存 MainWindow.xib 解决了问题。

    【讨论】:

      【解决方案2】:

      尝试从模拟器中完全卸载您的应用 - 它可能会在某处存储一些与设置有关的数据?

      您是否有来自调试器的堆栈跟踪显示对 NSKeyedUnarchiver 的调用来自何处?

      S

      【讨论】:

      • 重置模拟器或卸载应用程序无济于事。我错了:在 3.0 设备上发生同样的异常。但是在具有 3.1.2 的设备上使用相同的构建没有问题。堆栈跟踪:... #4 in -[NSKeyedUnarchiver initForReadingWithData:], #5 in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:], #6 in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:], #7在 -[UIApplication _loadMainNibFile], #8 在 -[UIApplication _runWithURL:sourceBundleID:] ...
      【解决方案3】:

      之后我也遇到了同样的问题
      1. 将我的 Xcode 项目发送到 FTP 远程服务器(使用 FileZilla)
      2. 重新下载
      3. 并启动它以检查文件是否顺利通过。重新下载的文件有这个问题。

      我认为 ftp 会导致捆绑文件(例如 .xcodeproj)出现问题,因为有时 .pages 和 .numbers 文件也会出现问题。

      我解决了这个问题

      1. 压缩我的项目 (.zip)
      2. 在 ftp 上上传 .zip。
      3. 重新下载
      4. 解压
      5. 启动后就没有问题了!

      【讨论】:

        猜你喜欢
        • 2011-05-16
        • 1970-01-01
        • 2011-05-28
        • 2011-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多