Невозможно получить доступ к функции объекта swift из objc, даже добавив тег @objcMembers во время тестирования пользовательского интерфейса - PullRequest
0 голосов
/ 16 декабря 2018

В последнее время я работаю над кодом тестирования пользовательского интерфейса для приложения iOS, мой код тестирования пользовательского интерфейса использует swift, но сам проект имеет некоторый код Objective-C, и я создаю одноэлементный объект для параметров аргументов запуска, который также написанбыстро, поэтому я добавляю тег @objcMembers к классу.

, но во время выполнения кода тестирования пользовательского интерфейса кажется, что он не способен достичь переменных и функций, сам синглтон также не существует?что-то я пропустил?

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...