您可以获得一个地址 AnyObject
与 unsafeAdressOf(object:AnyObject) -> UnsafePointer<void>
函数调用但是我怎样才能得到一个函数的地址呢?例如
func foo(){print("hi")}
print(unsafeAdressOf(foo))
不工作
最佳答案
class Foo {
func poo(value: Int) {
print(value)
}
}
typealias classFunctionType = @convention(thin) (Foo)->(Int)->()
func getSwiftFunctionAddr(_ function: @escaping classFunctionType) -> UnsafeMutableRawPointer {
return unsafeBitCast(function, to: UnsafeMutableRawPointer.self)
}
let func_addr = getSwiftFunctionAddr(Foo.poo)
print(func_addr)
关于ios - 获取函数的地址 [Swift 3.0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38687852/