我升级到Xcode 6 beta 4,现在我的应用程序不断崩溃的消息
接口构建器文件中的未知类X。
它崩溃是因为Xcode找不到我在Storyboard中链接的自定义类,但它显示它们在Xcode界面中正确链接。
我确定一切都连接正确。我唯一的其他选择可能是删除整个故事板文件并从头开始,因为它可能会以某种方式损坏。
编辑:我还想补充说,我尝试了清洁,重置模拟器,搞乱构建阶段等。这些都没用。
我升级到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中未分配的类。
其他回答
在我的案例中,问题是由于将我们的主故事板设置为启动屏幕,并且在应用程序启动时,对于故事板中引用的每个自定义视图控制器,我都会得到一个控制台错误(没有崩溃)。
我们已经讨论了从xib和启动图像到故事板,我还没有抽出时间让启动屏幕重新工作。当我终于开始创建一个没有自定义视图控制器(这是不允许的)的骨架启动故事板时,这些控制台错误就不再出现了。
只对我有效的是将模块名称添加到xib文件中…
因此,xib文件看起来是这样的:
mymodule.MyViewController.xib (Module being the name of the proyect, usually)
在我看来,这是一个可怕的解决方案,但这应该是苹果现在想让我们做的。
这个问题显示了在beta 4中3个可能的工作…显然,苹果在这种情况下并没有提供太多帮助,因为他们称之为“按预期工作”。
我有这个问题后,我添加了一个新目标,然后创建了一个新类使用“新文件”对话框,但意外地未能检查新目标以及在创建对话框中的原始目标,所以对象只添加到我的原始目标。解决方案是删除源文件(仅删除引用),然后使用“添加文件”将它们添加回来,这次检查两个目标。
有时您提供的控制器会从当前应用程序中丢失其目标成员。在这种情况下,在“Module”字段上按enter键将不起任何作用。转到控制器,确保它已将目标成员设置为当前应用程序。
检查类是否有正确的目标成员。