Я хотел создать экземпляр класса и динамически вызвать его метод.
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 .Необходимо включить имя модуля, чтобы это работало.