我最近正在为iOS应用开发UI测试代码, 我的UI测试代码使用的是swift,但是项目本身有一些Objective-C代码,并且我为启动参数设置创建了一个singleton对象,该对象也由swift编写,因此我在类中添加了@objcMembers标记。
但是在运行UI测试代码时,似乎无法访问变量和函数,单例本身也不存在吗? 我错过了什么?
import UIKit
#if DEBUG
@objcMembers
class EALaunchArugments: NSObject {
static let sharedInstance = EALaunchArugments()
// key for property
static private let UITestingKey = "-UITesting"
var isUITesting: Bool {
let value = self.getLaunchArgumentValue(key: EALaunchArugments.UITestingKey)
return Bool(value ?? "") ?? false
}
private func getLaunchArgumentValue(key: String) -> String? {
let arguments = ProcessInfo.processInfo.arguments
let indexOfKey = arguments.firstIndex(of: key)
guard let index = indexOfKey, index != NSNotFound else {
return nil
}
guard index + 1 >= arguments.count else {
return nil
}
return arguments[index + 1]
}
func setAllLaunchArgumentsSettingsForUITesting() {
// some work
}
}
#endif