Вызов функции Swift из пакета - PullRequest
0 голосов
/ 28 мая 2020

Я объявил функцию в настраиваемом пакете с использованием Xcode и Swift.

MyBundle.bundle -> File.swift -> func …() {}

Как мне вызвать эту функцию из другого проект с использованием Foundation.Bundle?

1 Ответ

1 голос
/ 29 мая 2020

Ну, вы не можете назвать это напрямую, но, вероятно, вы можете найти способ обойти это, что могло бы сработать.

Вы можете создать экземпляр этого класса из строки, используя NSClassFromString, а затем вызвать метод, используя этот вызов

Что-то вроде ниже

func getClassName(_ strClassName: String) -> AnyClass! {
   let bundle = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String;
    let requiredClass: AnyClass = NSClassFromString("\(namespace).\(strClassName)")!;
    return requiredClass;
}

Затем вы можете вызовите метод, используя экземпляр вашего класса, возвращенный указанным выше методом, например

yourClassInstance.perform(Selector("functionName"))
...