【发布时间】:2016-12-05 21:14:13
【问题描述】:
您可以通过unsafeAdressOf(object:AnyObject) -> UnsafePointer<void> 函数调用获得AnyObject 的地址,但我怎样才能获得函数的地址?例如
func foo(){print("hi")}
print(unsafeAdressOf(foo))
没用
【问题讨论】:
-
无法提供。如果您可以展示获取地址所需的用例,那么有人会向您展示更好的解决方案。
-
作为一个用例,如何创建一个函数地址字典作为键,其值是要调用的其他函数?然后,当操作系统调用您的 validateMenuItem() 函数并向您传递 NSMenuItem 引用时,您可以快速在字典中查找操作函数并找到要调用的函数以启用或禁用菜单项,而无需巨大的 switch 语句或其他可怕的机制。它避免了为每个菜单项创建一个出口来做同样的事情(如果菜单项本身是可散列的)。只是一个想法。