首页 > 解决方案 > 从 Bundle 调用 Swift 函数

问题描述

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

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

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

标签: swiftbundlebundles

解决方案


好吧,您不能直接调用它,但也许您可以采取一些方法来解决这个问题。

您可以使用从字符串创建该类的实例,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"))

推荐阅读