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

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

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

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

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


当前回答

当其他方法都行不通时,这个方法对我很有效。从终端的工程目录:

[~/Developer/MyProject] grep -rn ViewController * | grep -i xib 

在Xcode中打开匹配的文件作为源代码,并根据实际需要更改ViewController的任何实例。在我的例子中,我需要作为源代码打开的文件是Main。storyboard和我把ViewController的实例改为DetailViewController。

我从Xcode和main中删除了两个文件。故事板,我认为这是导致我这个问题开始。

其他回答

在我的例子中,我将app设置为universal app,所以xcode创建了两个故事板。但我只使用(设计)iPhone故事板。并尝试在iPad上运行应用程序。为了解决问题,只需要为iPhone制作应用程序,并且工作出色。

我的问题与podfile框架(特别是“BWWalkthrough”)有关。以上的解决方案都不适合我,无论我如何尝试,我都无法让模块指向我的应用程序。

最终对我有用的是将库作为podfile删除,并将其作为静态库直接添加到我的项目中。从那以后一切都很好。不完全确定类的pod实现有什么“坏”。

我的解决方案是从自定义类定义中删除@objc。

我的解决方案(Xcode 8.1 Swift 3.0):

接口生成器文件中的未知类xxx。

打开StoryBoard作为源代码,搜索xxx。删除包含值xxx的属性。构建并运行。

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

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

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

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

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