Ios Swift类未从情节提要中正确加载
我有一个有几个目标和几个配置的项目:比如说Ios Swift类未从情节提要中正确加载,ios,swift,xcode,uistoryboard,xcode-storyboard,Ios,Swift,Xcode,Uistoryboard,Xcode Storyboard,我有一个有几个目标和几个配置的项目:比如说Target1/Target2和Debug/Alpha/Release配置。我还有一个带有一些自定义类的故事板:比如说自定义类ViewController,它是我故事板中的初始VC。我想在代码中从情节提要加载视图控制器,如下所示: let vc = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController() as! ViewController ViewContr
Target1/Target2
和Debug/Alpha/Release
配置。我还有一个带有一些自定义类的故事板:比如说自定义类ViewController
,它是我故事板中的初始VC。我想在代码中从情节提要加载视图控制器,如下所示:
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController() as! ViewController
ViewController是这两个目标的成员。当我在Target1
上运行上述代码时,两种配置上的一切都正常。当我在Target2
上运行它时,它在Debug
上正常,但在Alpha
上失败,并显示以下消息:
Interface Builder文件中未知的类ViewController。无法将“UIViewController”(0x10fbc71d0)类型的值强制转换为“Target2.ViewController”(0x10b29cb88)
(如果故事板XML中没有customModule
)
或
接口生成器文件中的未知类TtC6Target19ViewController。无法将“UIViewController”(0x1083161d0)类型的值强制转换为“Target2.ViewController”(0x103e6b840)
(如果序列图像板XML中的customModule
与当前目标不匹配)
最终导致应用程序崩溃
从情节提要加载类名时,似乎无法向类名添加正确的命名空间
在故事板XML中有:
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
如果我在序列图像板检查器中或直接在XML中为此视图控制器(customModule=“Target2”)指定模块,则在Target2
上,这两种配置都能正常工作,但在Target1
上显然失败
在两个目标的生成设置中:Interface Builder序列图像板编译器-选项->默认模块继承自$(产品模块名称)
,该模块继承自$(产品名称:c99extidentifier)
,该模块最终继承$(目标名称)
。如果我在运行时打印目标名称,当我打开Target2+Alpha
(这不起作用),我会看到正确的目标名称(Target2
)。这意味着在加载模块名时,模块名应该作为名称空间正确添加到ViewController中
当我用所描述的配置集创建一个示例项目时,一切都正常,这意味着在实际项目中我的Alpha
-配置中有一些错误,但它几乎是Debug
的精确副本(不包括所有路径),可以正常工作
经过两天的拨弄和更改所有这些设置,我已经没有想法了,所以如果有人有想法,请填写免费分享。我将不胜感激。您能与本期杂志分享一个简单的项目吗?schemes中可能有些不同?@Bimawa正如我在尝试使用此配置创建示例项目时提到的那样,我无法重现此问题。您是否尝试过此
让viewController=UIStoryboard(名称:“Main”,捆绑包:nil)。InstanceViewController WithiIdentifier(“viewController”)作为ViewController
您在配置选项卡中有什么?你的阿尔法配置必须有目标。@dahiya_男孩是的,同样的结果