我的项目中有许多目标,每个目标都使用相同的 Storyboard ,但仅选择其中链接的类。通常 Xcode 不会提示,至少在 iPhone 版本上不会,在大多数目标上也不会。然而,一个特定的人提示两个特定的类别:
Unknown class ****** in Interface Builder file.
Unknown class $$$$$$ in Interface Builder file.
尽管 Storyboard中还有许多其他场景,但即使在这种特定情况下,其类也未包含在目标中。
当我在 iPad(模拟器)上执行应用程序时,就会发生这种情况,一段时间后它会在 UIApplicationMain 上崩溃;但我不知道这两件事是否有联系。
是否有某种方式让 Xcode 决定检查 Storyboard 的某些场景,而检查其他场景是否存在相应的类?
最佳答案
问题在于 Swift 是基于模块的。每个目标都是一个模块。类在特定模块中定义,并以该模块命名。
因此,MyFirstTarget 中的 ViewController 与 MySecondTarget 中的 ViewController 不同 - 它们是 MyFirstTarget.ViewController
和 MySecondTarget.ViewController
。
如果您查看 Storyboard的身份检查器,您会发现实际上它告诉您它认为该类属于哪个模块。因此,如果在 Nib 加载时该模块不存在,它可能会变得致命的困惑。
关于ios - 没有 Storyboard 中场景的某些类别的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31465224/