【发布时间】:2016-05-24 14:30:36
【问题描述】:
在我的 main.swift 文件中,我有 2 个不同的主要应用程序,用于测试和应用程序:
if NSClassFromString("XCTestCase") != nil {
UIApplicationMain(Process.argc, Process.unsafeArgv, nil, NSStringFromClass(AppDelegateTesting))
} else {
UIApplicationMain(Process.argc, Process.unsafeArgv, nil, NSStringFromClass(AppDelegate))
}
在应用程序中我正在访问 AppDelegate:
extension UIApplication {
static func getAppDelegate() -> AppDelegate {
return UIApplication.sharedApplication().delegate as! AppDelegate
}
}
所以在进行 XCTests 时,它不起作用。如何解决?
我不想重复代码。也许模拟它或为 UIApplication 创建协议。
谢谢!
【问题讨论】:
-
我从 2009 年开始从事 iOS 应用程序开发,我从未在一个应用程序中看到两个不同的
AppDelegates。我认为你做错了什么。你想解决什么问题? -
@dasdom,我总是使用 2 个 AppDelegate:qualitycoding.org/app-delegate-for-tests。 OP 面临的挑战是如何使用 Swift 严格的类型规则实现
getAppDelegate。
标签: ios swift appdelegate xctest