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

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

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

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

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


当前回答

在我的案例中,问题是由于将我们的主故事板设置为启动屏幕,并且在应用程序启动时,对于故事板中引用的每个自定义视图控制器,我都会得到一个控制台错误(没有崩溃)。

我们已经讨论了从xib和启动图像到故事板,我还没有抽出时间让启动屏幕重新工作。当我终于开始创建一个没有自定义视图控制器(这是不允许的)的骨架启动故事板时,这些控制台错误就不再出现了。

其他回答

我在重命名一个swift类后遇到了这个问题。使用@objc指令解决了这个问题:

@objc(ForumTopicListViewController) class ForumTopicListViewController

解决方案对我来说是不同的。您需要将类的.m添加到目标的构建阶段编译源中。

希望这能有所帮助!

我是PyObjC用户我的NSView子类在它自己的文件中。为我解决这个问题的是移动NSView子类从它自己的文件到我的AppController.py文件。这是包含应用程序控制器的文件。

我通过在所有视图控制器和视图的标识检查器的自定义类中输入模块名称(不幸的是下拉列表将什么都不显示…)解决了这个问题。

您可能还需要指明目标提供程序。为了达到这个目标,你可以在源代码模式中打开故事板,并在ViewController和View尖括号中添加“customModuleProvider”属性。

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

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

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

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

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

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

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