NSInvalidUnarchiveOperationException:“无法实例化名为 _UITableViewCellSeparatorView 的类”

Posted

技术标签:

【中文标题】NSInvalidUnarchiveOperationException:“无法实例化名为 _UITableViewCellSeparatorView 的类”【英文标题】:NSInvalidUnarchiveOperationException: 'Could not instantiate class named _UITableViewCellSeparatorView' 【发布时间】:2014-04-23 08:52:30 【问题描述】:

在 Xcode 更新 (5.1) 之后,当我尝试在 ios 6.x 中运行时,我的应用程序崩溃了。

我有一个应用程序,其中有一个自定义单元格和约束。

未选中 xib 文件的自动布局。我得到的错误是:

*** 由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“无法实例化 类名为 _UITableViewCellSeparatorView'

我只找到了one thread about this issue in another forum,但没有解决方案,只是我也做过一个测试并得到了同样的错误。

【问题讨论】:

我在尝试cell = [tableView dequeueReusableCellWithIdentifier:cellID]时遇到了同样的问题 起初我认为这个问题可能与升级 Xcode (***.com/questions/18423896/…) 时发生的 SDK 问题有关,但在再次执行这些步骤后我还没有解决方案。 @kraftydevil 我刚刚将我的 xcode 降级到 5,同样的问题!没错,我猜这是 SDK 问题! 如果您在降级后遇到同样的问题,那么您可能需要将 6.1 SDK 放在它所属的位置。我卸载了 Xcode 5.1,重新启动了机器,安装了 5.0.2,然后链接了 6.1 SDK,它又可以工作了。 现在开始工作了!但是,仅适用于 xcode 5。链接 6.1 SDK 就是这样!现在,一个大问题,为什么不在 xcode 5.1 的 sdk 中? 【参考方案1】:

更新到 Xcode 5.1 后,我遇到了同样的错误。

我可以通过编辑自定义单元格的 xib 来消除错误。

在文件检查器的 Interface Builder Document 下,我将“查看为”切换为“iOS 6.1 及更早版本”。我还将“Builds for”设置为“iOS 6.0 及更高版本”。

【讨论】:

哦,听起来很合理!当我有足够的冒险精神再次更新时,我会试试这个! 我也是!离交付项目这么近了,还没到玩的时候!感谢您的回复! 是的......“构建”字段是您唯一需要更改的字段【参考方案2】:

我遇到了同样的问题,“查看方式”和“构建方式”对我没有帮助。我更改了“打开方式”-“Xcode 5.0”,它有所帮助。

PS 不要忘记从设备/模拟器中删除应用程序,清理项目并重新启动 xcode(不确定哪种方式正确,我都做了)

【讨论】:

【参考方案3】:

安装Xcode 6.0.1 beta 2后,我也遇到了这个问题。

我的项目有 iOS 部署目标是 6.0

使用@AlexZd 的回答,我做了接下来的动作:

    我找到了所有的xib,此时将创建/显示

    在我采取行动之前,这个 xib 有下一个标准设置:

    因此,对于我选择的每个 xib,此设置在下一个设置中进行了更改:

现在,检查它的工作。如果这不起作用,则执行控制操作

4。 1) 通过 CMD + SHIFT + K 清理您的 Xcode 项目, 2) 手动清理 ~/Library/Developer/Xcode/DerivedData 文件夹 3) 从设备中删除应用程序,然后在此设备上通过 Xcode 运行它

我在 IOS6 和 IOS7 的 3 个 iPad 上也检查了这个解决方案。这对其中任何一个都有效!

【讨论】:

以上是关于NSInvalidUnarchiveOperationException:“无法实例化名为 _UITableViewCellSeparatorView 的类”的主要内容,如果未能解决你的问题,请参考以下文章