我的项目中有许多目标,每个目标都使用相同的故事板,但只选择了链接的类。通常Xcode不会抱怨,至少它不是iPhone版本,也不是大多数目标。然而,一个特定的人抱怨两个特定的类:
Interface Builder文件中的未知类******。
Interface Builder文件中的未知类$$$$$$。
尽管故事板中还有许多其他场景,但其中的类别未包含在目标中,即使在此特定情况下也是如此。
只有当我在iPad(模拟器)上执行应用程序时才会发生这种情况,过了一会儿它就会在UIApplicationMain上崩溃;不过,我不知道这两件事情是否相关。
Xcode是否有某种方式决定检查故事板的某些场景,而另一些则不是因为相应类的存在?
答案 0 :(得分:0)
问题是Swift是基于模块的。每个目标都是一个模块。类在特定模块中定义,并且被命名为该模块。
因此,MyFirstTarget中的ViewController与MySecondTarget中的ViewController不同 - 它们是MyFirstTarget.ViewController
和MySecondTarget.ViewController
。
如果你查看故事板的Identity检查器,你会发现它实际上会告诉你它认为这个类属于哪个模块。因此,如果在笔尖加载时该模块不存在,它可能会变得致命。
答案 1 :(得分:0)
更简单地说,我在其他目标中引入了一个SplitView,而不是在对象中使用它,当它试图将其显示为入口场景时,它就崩溃了。事实上,未知类是主控制器中的一个可能与拆分视图一起显示。
我通过复制iPad故事板来修复问题,使其与Splitview一起使用,而另一个没有它。