В моем файле main.swift У меня есть 2 разных основных приложений для тестирования и приложения:Ссылка на AppDelegate, когда разные UIApplicationMain
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.
Спасибо!
Я занимаюсь разработкой приложений iOS с 2009 года, и я никогда не видел двух разных приложений AppDelegates в одном приложении. Я думаю, вы делаете что-то неправильно. Что вы пытаетесь решить? – dasdom
@dasdom, я всегда использую 2 AppDelegates: http://qualitycoding.org/app-delegate-for-tests/. Проблема, с которой сталкивается OP, заключается в том, как реализовать 'getAppDelegate' со строгими правилами типа Swift. –