【问题标题】:How can I fix NSInvalidUnarchiveOperationException如何修复 NSInvalidUnarchiveOperationException
【发布时间】:2012-06-20 14:24:49
【问题描述】:

* 由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“* -[NSKeyedUnarchiver decodeObjectForKey:]:无法解码类的对象 (NSLayoutConstraint)”

我有一个非常简单的应用程序

一个视图有一个按钮

I Control 单击并拖动按钮到第二个视图并选择 MODAL

当我在模拟器中运行它时,一切正常

当我在运行 iOS 5.1.1 的 iPad 上运行它时,它会因上述错误而崩溃。我不知道为什么,也没有代码。

【问题讨论】:

标签: ios xcode exception ios5 xcode4.3


【解决方案1】:

这是因为您使用的是默认使用“自动布局”的 Xcode 4.5(或以前的测试版)。自动布局仅在 iOS 6 上可用,因此在以前的 iOS 版本上会出现运行时错误。

您可以通过打开 Storyboard、打开“实用工具”窗格并禁用第一个选项卡/部分中的“使用自动布局”复选框来解决此问题:

对于常规的非故事板笔尖,选择顶级视图以访问此选项。

【讨论】:

  • 谢谢。我永远不会找到这个。
  • @Jignesh:这已经是一个很受好评的答案,您的编辑可以更好地作为评论(甚至是它自己的答案)我会将您的编辑文本添加为​​答案的评论.
  • 来自 Jignesh 的编辑 “当我解决了我的问题时,我不得不取消选中 nib file 上的 Use Autolayout,这对我造成了问题”:“您可以通过打开您的情节提要或任何导致问题的 nib 文件,打开实用程序窗格,并禁用第一个选项卡/部分中的“使用自动布局”复选框
  • 我的 iOS 部署目标是 4.3,我在某些视图中使用了 Autolayout,但 xcode 根本没有警告我。我们甚至不应该能够构建具有此类设置的应用程序!谢谢苹果...
  • 好吧,从技术上讲,您可能有一个仅在 iOS 6 及更高版本上使用的自动布局视图。因此,即使部署目标为 ,启用自动布局也是一个合法的用例
【解决方案2】:

在你的 Xib->Identity and type ->Interface Builder Document -> 取消选中 useAutoLayout 复选框,这是 Ios6 的新功能

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 2019-01-18
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2019-01-12
    相关资源
    最近更新 更多