我升级到Xcode 6 beta 4,现在我的应用程序不断崩溃的消息
接口构建器文件中的未知类X。
它崩溃是因为Xcode找不到我在Storyboard中链接的自定义类,但它显示它们在Xcode界面中正确链接。
我确定一切都连接正确。我唯一的其他选择可能是删除整个故事板文件并从头开始,因为它可能会以某种方式损坏。
编辑:我还想补充说,我尝试了清洁,重置模拟器,搞乱构建阶段等。这些都没用。
我升级到Xcode 6 beta 4,现在我的应用程序不断崩溃的消息
接口构建器文件中的未知类X。
它崩溃是因为Xcode找不到我在Storyboard中链接的自定义类,但它显示它们在Xcode界面中正确链接。
我确定一切都连接正确。我唯一的其他选择可能是删除整个故事板文件并从头开始,因为它可能会以某种方式损坏。
编辑:我还想补充说,我尝试了清洁,重置模拟器,搞乱构建阶段等。这些都没用。
当前回答
我是PyObjC用户我的NSView子类在它自己的文件中。为我解决这个问题的是移动NSView子类从它自己的文件到我的AppController.py文件。这是包含应用程序控制器的文件。
其他回答
@gfrs说的是正确的,你需要设置模块。然而,我曾经遇到过一个问题,我的类没有在类下拉列表中列出。最终我删除了swift文件,重新启动Xcode并重新创建了该文件。最后,这个类被列出并可以在Storyboard中使用。
看看这个答案,它似乎解决了我遇到的“真正的”问题。
当其他方法都行不通时,这个方法对我很有效。从终端的工程目录:
[~/Developer/MyProject] grep -rn ViewController * | grep -i xib
在Xcode中打开匹配的文件作为源代码,并根据实际需要更改ViewController的任何实例。在我的例子中,我需要作为源代码打开的文件是Main。storyboard和我把ViewController的实例改为DetailViewController。
我从Xcode和main中删除了两个文件。故事板,我认为这是导致我这个问题开始。
我通过在所有视图控制器和视图的标识检查器的自定义类中输入模块名称(不幸的是下拉列表将什么都不显示…)解决了这个问题。
您可能还需要指明目标提供程序。为了达到这个目标,你可以在源代码模式中打开故事板,并在ViewController和View尖括号中添加“customModuleProvider”属性。
当我在我的项目目录中创建一个已经存在的同名项目时,我遇到了一个问题(尽管它在一段时间前被删除了)。我把我的解写在https://stackoverflow.com/a/27763697/1654692
有时Xcode会错过customModule="AppName" customModuleProvider="target"
要修复它,打开storyboard作为源代码并替换这一行:
<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
sceneMemberID="viewController">
:
<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">