我升级到Xcode 6 beta 4,现在我的应用程序不断崩溃的消息

接口构建器文件中的未知类X。

它崩溃是因为Xcode找不到我在Storyboard中链接的自定义类,但它显示它们在Xcode界面中正确链接。

我确定一切都连接正确。我唯一的其他选择可能是删除整个故事板文件并从头开始,因为它可能会以某种方式损坏。

编辑:我还想补充说,我尝试了清洁,重置模拟器,搞乱构建阶段等。这些都没用。


当前回答

这可以在任何6.0以上的Xcode中发生。在Swift项目中重命名一些ViewController类后,我就遇到了这种情况(但我猜Obj-C也会发生这种情况)。你只需要打开接口构建器,转到重命名了类的ViewController的身份检查器,选择class并按Enter。这将重命名类重新分配给选定的ViewController,也重置模块值在重命名类后丢失。

Xcode 8.1的更新(也可能是8.0):

Xcode 8.1崩溃了。简单和恼人的只是崩溃,不打印任何东西。我追了一个小时的幻影崩溃,只是为了发现它是同一件事——IB中未分配的类。如果你得到了一些幻影崩溃,首先仔细检查IB中未分配的类。

其他回答

在mij情况下,ViewController.h/m在库中。项目仍然构建,但自Xcode 6.3以来,上述错误在运行时显示。将两个文件移回项目中解决了这个问题。

@gfrs说的是正确的,你需要设置模块。然而,我曾经遇到过一个问题,我的类没有在类下拉列表中列出。最终我删除了swift文件,重新启动Xcode并重新创建了该文件。最后,这个类被列出并可以在Storyboard中使用。

看看这个答案,它似乎解决了我遇到的“真正的”问题。

我沿着劳拉建议的路线修复了这个问题,但我不需要重新创建文件。

使用XCode 4,在Project Navigator中,选择包含它要抱怨的类的.m文件

进入“查看->实用程序->显示文件检查器” (这将显示在右边的文件检查器,带有。m- File信息)

打开Target Membership部分,并确保为这个.m文件选择了目标

当我把我的.m文件添加到我的项目时,由于某种原因,它没有把它添加到我的默认目标中,这导致我得到你提到的错误。

我在Xcode Version 6.1 (6A1052d)中遇到了同样的问题。我认为如果你重命名App / Xcode项目,就会出现这个问题。

我的解决方案是手动在接口构建器中添加模块名称。

Swift 3解决方案。

所有这些都不起作用。

点击右边面板上的模块没有工作。 添加@obj无效。 重新启动不起作用。 移动到桌面作为xcode中断较长的路径是行不通的。 ...

这终于奏效了。

只需创建一个新目录,并在其中创建一个新项目。添加除Main.sotryboard之外的其他文件。

现在复制前一个项目中的视图控制器,并将其粘贴到新的Main.storyboard中。

瞧!这个作品。