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

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

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

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

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


当前回答

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

@objc(ForumTopicListViewController) class ForumTopicListViewController

其他回答

我在Xcode 8中遇到了这个问题,为了解决这个问题,我不得不在文本编辑器中修改故事板。

通常,查找控件并从控件实体中删除customModule和customModuleProvider。

为我做了一个魔术。

我通过做与ChikabuZ建议完全相反的事情来解决它(尽管感谢你指出了这一点)。在故事板文件中,找到这个:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

然后用这个替换:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" sceneMemberID="viewController">

我不敢相信我在Swift编译器和Xcode 6中浪费了多少时间

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

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

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

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

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

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

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