无法将类型A的值转换为类型A

时间:2018-08-08 01:20:11

标签: swift xcode

对于iOS开发和敏捷我还是比较陌生。为了弄湿我,我正在尝试添加一些简单的Snapshot测试。

测试本身真的很简单(更复杂的是只是为视图控制器模拟数据),只需要从情节提要中为我关心快照的视图创建一个View控制器实例即可。

func testJobAlertsSignupWidget(){
    let storyboard = UIStoryboard(name: "SearchOverlayViewController", bundle: nil)
    let viewController = storyboard.instantiateViewController(withIdentifier:"SearchOverlayViewController") as! SearchOverlayViewController
    FBSnapshotVerifyView(viewController.view)
}

但是我在执行强制转换Signal SIGABRT的那一行一直在发生as! SearchOverlayViewController异常。此外,我在应用程序日志中看到了这一点。

Could not cast value of type 'MyApp.SearchOverlayViewController' (0x108655258) to 'MyApp.SearchOverlayViewController' (0x12d4a8058).

这一行使我感到困惑。令人困惑的是,两个引用对类型MyApp.SearchOverlayViewController的地址都不同。如果删除强制类型转换并使用调试器,则可以看到viewController是预期的类型。但是,投射始终失败。

我的项目建设不当,是因为某些东西被错误链接或双重链接了吗?我删除了DerivedData并进行了几次清理/构建,但无济于事。

我发现的唯一接近的东西是几年前的tweet,但是在那个地方,两个对象的地址都相同。

0 个答案:

没有答案