Rya*_*ans 4 reflection function ios swift
我希望迅速获得函数的名称。
我基本上想要这样的东西
__FUNCTION__
Run Code Online (Sandbox Code Playgroud)
但是来自不同的功能,例如
func do () {
code etc
}
func doStuff () {
var funcName = do().name
}
Run Code Online (Sandbox Code Playgroud)
以上将是完美的。
有任何想法吗?
在 Swift 3 中,正确的关键字是#function。您可以传递一个指向用于存储函数名称的String对象的指针。例如:
func myFunction(param1:Any, param2:Any, functionName: UnsafeMutablePointer<String>?) -> Any {
if functionName != nil {
functionName.pointee = #function
}
...
}
Run Code Online (Sandbox Code Playgroud)
用法:
var name:String
// You can always pass nil if you are not interested in retrieving the
// function name
let result = myFunction(1, 2, functionName: &name)
print(name)
Run Code Online (Sandbox Code Playgroud)
小智 1
不是最干净的,但它有效。
func dost () -> (name: String,String) {
return (__FUNCTION__,"")
}
func doStuff () {
var funcName = dost().name
}
Run Code Online (Sandbox Code Playgroud)
您可以只返回函数名称而不返回元组。
| 归档时间: |
|
| 查看次数: |
5279 次 |
| 最近记录: |