swift - 从 Bundle 调用 Swift 函数
问题描述
我已经使用 Xcode 和 Swift 在自定义包中声明了一个函数。
MyBundle.bundle —> File.swift —>func …() {}
如何使用从另一个项目调用该函数Foundation.Bundle
?
解决方案
好吧,您不能直接调用它,但也许您可以采取一些方法来解决这个问题。
您可以使用从字符串创建该类的实例,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"))
推荐阅读
- c# - selenium xpath,选择具有特定标题的跨度
- node.js - Angular v6、NodeJs v8.11.4 - 找不到模块:错误:无法解析 fs、http、https os、net、vm、timers、child_process
- pci - BIOS 在枚举过程中如何确定 PCI 端口类型?
- php - 如何替换 php 文件内硬编码数组中的特定值?
- python-3.x - 是否可以用 png 图像替换图表的条并根据给定的值扩展它们?
- jquery - jQuery插件顺序显示文本
- elasticsearch - 使用默认时间戳创建映射不起作用
- android - 使用 DialogFragment 创建自定义对话框
- delphi - Firemonkey 组件节省设计时间大小
- ios - 当约束具有大小类时如何以编程方式更改约束?