NSInvalidUnarchiveOperationException: 'Could not instantiate class named _UITableViewCellSeparatorView' 非法解档操作异常:无法实例化名为_UITableViewCellSeparatorView的类。

8
在更新Xcode(5.1)后,我的应用在iOS 6.x上运行时崩溃。
我有一个使用自定义单元格和约束的应用程序。
xib文件中未选中自动布局。我收到的错误是:
“*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named _UITableViewCellSeparatorView'”
我只在另一个论坛的一个帖子中找到了一个关于此问题的线索,但没有解决方案,只是一个我也进行了测试并得到了相同错误的测试。

当我尝试使用cell = [tableView dequeueReusableCellWithIdentifier:cellID]时,我遇到了相同的问题。 - kraftydevil
起初我认为问题可能与升级Xcode时发生的SDK问题有关(https://dev59.com/ImMl5IYBdhLWcg3wa2bV),但是在再次按照步骤操作后,我仍然没有找到解决方案。 - kraftydevil
@kraftydevil 我刚刚将我的Xcode降级到5,但是问题依旧!你说得对,这应该是一个SDK的问题! - maiconpeixinho
如果您在降级后仍然遇到相同的问题,则可能需要将6.1 SDK放置在正确的位置。我卸载了Xcode 5.1,重新启动了我的机器,安装了5.0.2,然后链接了6.1 SDK,现在它又可以工作了。 - kraftydevil
现在它可以工作了!但是,只适用于Xcode 5。链接了6.1 SDK,就这样!现在,最大的问题是,为什么不在Xcode 5.1的SDK中呢? - maiconpeixinho
3个回答

18

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

通过编辑自定义单元格的xib文件,我成功地解决了这个错误。

在文件检查器中的Interface Builder设置下,把"View as"改为"iOS 6.1 and Earlier"。同时,"Builds for"设置为"iOS 6.0 and Later"。


哦,听起来很有道理!当我有足够的冒险精神再次更新时,我会尝试这个! - kraftydevil
我也是!我离交付项目很近了,现在不是玩的时候!谢谢你的回复! - maiconpeixinho
1
是的... "构建目标"字段是您唯一需要更改的字段。 - Allen Zeng

1
在安装完Xcode 6.0.1 beta 2之后,我也遇到了这个问题。
我的项目的iOS部署目标是6.0。
根据@AlexZd的回答,我执行了以下操作:
  1. 找到所有此时将要创建/显示的xib文件

  2. 在我的操作之前,这些xib文件具有以下标准设置:

enter image description here

因此,对于我选择的每个xib,这些设置都已更改为以下设置:

enter image description here

现在,检查它的工作情况。如果它不起作用,那么执行控制操作。
4. 1)通过CMD + SHIFT + K清理您的Xcode项目, 2)手动清理~/Library/Developer/Xcode/DerivedData文件夹 3)从设备中删除应用程序,然后通过Xcode在此设备上运行它
我已经在3个iPad上的IOS6、IOS7和IOS8中测试过这个解决方案。在任何一个设备上都可以完美地工作!

1
我遇到了同样的问题,“查看”和“构建”都没有帮助我。我改变了“打开方式”-“Xcode 5.0”,它起作用了。
PS:不要忘记从设备/模拟器中删除应用程序,清理项目并重新启动xcode(不确定哪种方法是正确的,我都试过了)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接