Reflection Swift发现协议方法
我正在开发一个HTML5 showcase应用程序,我需要发现Swift协议中的所有方法。所有协议都是从基本协议扩展而来的 该应用程序是测试这种方法的HTML5展示。应用程序调用该方法并给出响应 我找到了关于一个特定协议的一些信息,但我需要在我的应用程序中找到所有协议,然后找到关于这个方法的所有信息(名称、参数名称、参数类型和返回值)Reflection Swift发现协议方法,reflection,methods,swift,protocols,Reflection,Methods,Swift,Protocols,我正在开发一个HTML5 showcase应用程序,我需要发现Swift协议中的所有方法。所有协议都是从基本协议扩展而来的 该应用程序是测试这种方法的HTML5展示。应用程序调用该方法并给出响应 我找到了关于一个特定协议的一些信息,但我需要在我的应用程序中找到所有协议,然后找到关于这个方法的所有信息(名称、参数名称、参数类型和返回值) @objc protocol Protocol { func method1() func method2() -> Bool
@objc protocol Protocol {
func method1()
func method2() -> Bool
func method3(param1:Int) -> Bool
func method4(param1:Int, param2:Int, param3:Int) -> Bool
}
var numMethods:UInt32 = 0
var methods:UnsafeMutablePointer<objc_method_description> = protocol_copyMethodDescriptionList(Protocol.self, true, true, &numMethods)
for var iuint:CUnsignedInt = 0; iuint < numMethods; iuint++ {
var i:Int = Int(iuint)
var method:objc_method_description = methods[i]
println("Method #\(i): \(method.name)")
}
@objc协议{
func方法1()
func method2()->Bool
func method3(参数1:Int)->Bool
func方法4(param1:Int,param2:Int,param3:Int)->Bool
}
变量数值方法:UInt32=0
var方法:unsafemeutablepointer=protocol\u copyMethodDescriptionList(protocol.self、true、true和numMethods)
对于变量iuint:CUnsignedInt=0;iuint
我正在使用Objective-C运行时引用
你知道如何在swift中实现这一点吗?在swift中没有真正的反映 欲了解更多信息,请阅读:
您将希望获得:
id (*func)(id, SEL, id) = (void *)imp;
return func(target, selector, param);`
感谢您提供的文档。我以前读过所有这些帖子。但在这篇文章中,我说可以使用Objective-C运行时引用查询方法,这正是我要做的。我想问的是,是否有人有一个完整的例子来获取一个方法的所有信息。