我想知道是否有办法获得一些有用的班级构成信息。例如,我发现能够访问类的所有可用函数非常有用。看来这MyrrorType不是我正在寻找的:/我知道我可以使用获取函数名称__FUNCTION__,但这并不完全是我所需要的。我需要的是可用于班级的所有功能的完整列表。有什么有用的提示吗?
与 Objective-C 中可用的黑客技术相比,Swift 中的反射非常有限。话虽如此,Objective-C 运行时函数在 Swift 中仍然可用。您可以通过让您的类继承自以下内容,将您的类潜入 Objective-C 世界NSObject:
class MyClass: NSObject {
func f1() {}
func f2() {}
func f3() {}
}
let myClass = MyClass.self
var methodCount: UInt32 = 0
let methodList = class_copyMethodList(myClass, &methodCount)
for i in 0..<Int(methodCount) {
let selName = sel_getName(method_getName(methodList[i]))
let methodName = String(CString: selName, encoding: NSUTF8StringEncoding)!
print(methodName)
}
Run Code Online (Sandbox Code Playgroud)
这将为您提供 4 种方法:f1 ... f3和init。
| 归档时间: |
|
| 查看次数: |
4126 次 |
| 最近记录: |