从 Bundle 调用 Swift 函数

Call Swift function from Bundle

我已经使用 Xcode 和 Swift 在自定义包中声明了一个函数。

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

如何使用 Foundation.Bundle 从另一个项目调用该函数?

嗯,您不能直接调用它,但也许您可以采取一些可行的方法。

您可以使用 NSClassFromString 从字符串创建 class 的实例,然后使用该调用

调用该方法

类似下面的内容

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

然后您可以使用上述方法返回的 class 实例调用该方法,如

yourClassInstance.perform(Selector("functionName"))