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 动态转换失败 - 尝试运行单元测试时出错的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 8 / Swift 3 中的 iOS 异步单元测试(waitForExpectations 失败)