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

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

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

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

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


当前回答

在我的情况下,我在项目设置中添加了一个标志-ObjC到其他链接器标志,以使其工作。我也尝试了-all_load标志,它工作得很好。

其他回答

我在输入问题时解决了这个问题。我想我应该回答我的问题,并把它留给任何在使用Xcode 6 beta 4时可能遇到这个问题的人。

为了解决这个问题,您需要选择Storyboard中的每个自定义类对象(这包括任何自定义视图,甚至自定义视图控制器本身)。

然后选择这些对象,打开标识检查器,在“自定义类”下,你应该看到模块选项。最后:

单击Module文本框内的,并按enter。 或者(更新2022年),选中“从目标继承模块”选项。

就是这样!我的所有自定义对象的当前模块一定是在Xcode 6 beta 4中内部设置不正确。但在检查员那里并没有看到这一点。

注意,如果在“模块”文本框中按enter键不起作用,请尝试选择向右的箭头并手动选择当前模块,然后清除文本框并按enter键。您还可以尝试在类文本框内按enter(尽管这通常是为了解决不同的问题)。

下面是一张图片,让事情更清楚:

当XCode 10停止“细化调试”时,这真的很奇怪。 在我的情况下,我设置了UITableViewDelegate和UITableViewDataSource与Storyboard和忘记实现那些必要的方法。我只是想先测试视图,在实现那些方法之前,然后崩溃!XCode 9,将警告这些方法,但XCode 10,真的使我的代码慢,不是在这一个,其他人我已经通过这个“错误怀疑”。希望这能帮助到一些人。谢谢

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

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

只对我有效的是将模块名称添加到xib文件中…

因此,xib文件看起来是这样的:

mymodule.MyViewController.xib (Module being the name of the proyect, usually)

在我看来,这是一个可怕的解决方案,但这应该是苹果现在想让我们做的。

这个问题显示了在beta 4中3个可能的工作…显然,苹果在这种情况下并没有提供太多帮助,因为他们称之为“按预期工作”。

选择您未知的类文件,打开文件检查器选项卡,在目标成员中检查您的目标名称。好了。