Как создать экземпляр класса swift и динамически вызывать его метод из строки? - PullRequest
0 голосов
/ 02 апреля 2019

Я хотел создать экземпляр класса и динамически вызвать его метод.

class Test: NSObject {
    @objc func greet() {
        print("123")
    }
}

Я могу вызвать метод, указанный в строковой форме, используя perform

let t = Test()
t.perform(Selector("greet"))

Но я также хочу запустить тест аналогичным образом.

let t = GetClass("Test").init()  // some method when called gives it's object
t.perform(Selector("greet"))

Здесь класс Swift будет наследовать от NSObject и к его методам добавится @obj.


Каксделать то же самое, используя методы Objective-C, но из исходного кода Swift?Например,

let t = NSClassFromString("Test")
t.init() // ??
t.perform(Selector("greet"))

Редактировать: Для Objective-C я заработал, выполнив Вызов метода из String в Swift .Необходимо включить имя модуля, чтобы это работало.

...