在到达我的代码之前,应用程序在运行时崩溃 xcode6.1 Universal App Objective-C NSKeyedUnarchiver iOS 7.0 iOS 8.1

Posted

技术标签:

【中文标题】在到达我的代码之前,应用程序在运行时崩溃 xcode6.1 Universal App Objective-C NSKeyedUnarchiver iOS 7.0 iOS 8.1【英文标题】:app crashes at run before reaching my code xcode6.1 Universal App Objective-C NSKeyedUnarchiver iOS 7.0 iOS 8.1 【发布时间】:2015-02-17 15:30:08 【问题描述】:

应用程序在 7.1 模拟器或设备下运行时崩溃,但在 8.1 中运行良好

使用 StackTrace:

appName[10676:607] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did you forget to send -finishEncoding to the NSKeyedArchiver?
appName[10676:607] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '(null)'
*** First throw call stack:
(
    0   CoreFoundation                      0x007a91e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x005258e5 objc_exception_throw + 44
    2   CoreFoundation                      0x007a8fbb +[NSException raise:format:] + 139
    3   UIKit                               0x01064b7b -[UINib instantiateWithOwner:options:] + 951
    4   UIKit                               0x013138bd -[UIStoryboard instantiateViewControllerWithIdentifier:] + 220
    5   UIKit                               0x01313a36 -[UIStoryboard instantiateInitialViewController] + 74
    6   UIKit                               0x00daf6ac -[UIApplication _loadMainStoryboardFileNamed:bundle:] + 79
    7   UIKit                               0x00daf949 -[UIApplication _loadMainInterfaceFile] + 245
    8   UIKit                               0x00dae54e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 543
    9   UIKit                               0x00dc2f92 -[UIApplication handleEvent:withNewEvent:] + 3517
    10  UIKit                               0x00dc3555 -[UIApplication sendEvent:] + 85
    11  UIKit                               0x00db0250 _UIApplicationHandleEvent + 683
    12  GraphicsServices                    0x02e83f02 _PurpleEventCallback + 776
    13  GraphicsServices                    0x02e83a0d PurpleEventCallback + 46
    14  CoreFoundation                      0x00724ca5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
    15  CoreFoundation                      0x007249db __CFRunLoopDoSource1 + 523
    16  CoreFoundation                      0x0074f68c __CFRunLoopRun + 2156
    17  CoreFoundation                      0x0074e9d3 CFRunLoopRunSpecific + 467
    18  CoreFoundation                      0x0074e7eb CFRunLoopRunInMode + 123
    19  UIKit                               0x00dadd9c -[UIApplication _run] + 840
    20  UIKit                               0x00daff9b UIApplicationMain + 1225
    21  appName                       0x000d3e48 main + 136
    22  libdyld.dylib                       0x02a766d9 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

一旦发生此错误,我将使用 VersionControl。我确实退回到以前的提交,但错误不断出现。我很确定我的代码中什么都没有。

我也尝试了Build universal app for ios 3.0 using Xcode 4.3.x - NSKeyedUnarchiver Exception的所有解决方案

但是由于它已经 2 岁了,我使用 xcode6.1 它不起作用。

【问题讨论】:

问题的根源是通用情节提要...我先对 iPhone 进行了编码,然后添加了 iPad 约束 iPad 7.1 不受仅 iPhone 7.1 错误的影响...看起来我有解决这个问题 什么是VersionControll 例如 git 或 svn 抱歉我的拼写错误,我不会说英语,而且我有阅读障碍一些错误/拼写错误/错别字出现在我眼中的速度不像母语使用者和非阅读障碍者那样快跨度> 【参考方案1】:

iOS8 中引入的通用故事板适用于 iPhone 和 iPad 8 以及 iPad 7,但不适用于 iPhone 7(仅在不创建任何 iPad 尺寸布局的情况下)

我通过使用 plist-keys Main sroryboard file base name (iPhone)Main sroryboard file base name (iPad) 引用不同的 Storyboard 和 iPhone 引用默认值来解决问题,以避免任何其他麻烦

【讨论】:

在开发一个需要支持 iOS 7.1 和 8 的通用项目时遇到了同样烦人的问题。我不知道为什么 Apple 会漏掉这样一个重大错误,但是...谢谢非常感谢您的洞察力,帮助了很多。干杯,伙计!

以上是关于在到达我的代码之前,应用程序在运行时崩溃 xcode6.1 Universal App Objective-C NSKeyedUnarchiver iOS 7.0 iOS 8.1的主要内容,如果未能解决你的问题,请参考以下文章

仪器在僵尸时崩溃

从 AsyncTask doInBackground 返回时应用程序崩溃 [重复]

在啥情况下会在控制权到达 main() 函数之前发生崩溃? [复制]

嵌套循环导致Excel崩溃

添加一个函数调用时应用程序幻象崩溃

防止广播接收器被最近的应用程序杀死