Swift 动态转换失败 - 尝试运行单元测试时出错

Posted

技术标签:

【中文标题】Swift 动态转换失败 - 尝试运行单元测试时出错【英文标题】:Swift dynamic cast failed - Error when trying to run unit tests 【发布时间】:2015-01-20 09:45:33 【问题描述】:

Xcode 版本 6.1.1 (6A2008a)

错误:libswiftCore.dylib`swift_dynamicCastClassUnconditional 和 Swift 动态转换失败

我正在尝试测试,但遇到了这个错误,我不确定如何修复。有人可以对此有所了解吗?

发生错误:

这个演员发生了错误:

var delegate = UIApplication.sharedApplication().delegate as AppDelegate

在阅读this post 之后:我从测试目标中删除了 AppDelegate.swift,但是在构建时出现错误,因为编译器抱怨不知道演员表中的“AppDelegate”。我糊涂了?!

【问题讨论】:

【参考方案1】:

好吧,经过一番折腾,问题终于解决了:

    我从应用程序主要(非测试)部分的文件中删除了所有测试目标成员资格,包括 AppDelegate。

    我将我需要访问(从应用程序的测试部分)的所有类(在应用程序的主要部分)更改为公开,并将这些类的所需方法也设置为公开) .

    我使用#import AppName 语句将主项目导入到每个适当的测试类中

希望能为其他人节省一些时间.. :)

【讨论】:

这对我帮助很大。唯一不好的是你必须将所有内容都更改为公开 :( 第 3 步是我将主项目中的 swift 文件添加到测试目标后缺少的内容。谢谢!!

以上是关于Swift 动态转换失败 - 尝试运行单元测试时出错的主要内容,如果未能解决你的问题,请参考以下文章

尝试通过测试单元引用数据库连接时出现 C#.net 异常

UI 中的动态数据的 UI 单元测试失败:iOS

运行测试单元时出现 VUE 错误

Xcode 8 / Swift 3 中的 iOS 异步单元测试(waitForExpectations 失败)

在 Swift 单元测试中,我在 App 和单元测试目标之间遇到类转换错误

iOS 单元测试在 CocoaPods Google Maps SDK 上失败