从捆绑包调用Swift函数

问题描述 投票:-1回答:1

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

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

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

swift bundle bundles
1个回答
0
投票

嗯,您不能直接调用它,但是可能可以采取一些措施来解决这个问题。

您可以使用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"))
© www.soinside.com 2019 - 2024. All rights reserved.