在 Objective-C 中,我会使用以下代码来识别类的实例和在控制台中调用的函数。
NSLog(@"[DMLOG - %@] %@", NSStringFromSelector(_cmd), self);
这将返回类似下面控制台的内容,我将在其中获取实例 ID 以跟踪对象的不同实例。
[DMLOG - prepForInput] <GridBase: 0x7fb71860a190>
如何获取实例 ID 和在 Swift 中调用的函数?我试过以下方法在 Swift 中获取 ID,但它只提供类名而没有实例 ID 值?如有任何建议,我们将不胜感激。
print("[DBG] Init: \(self)")
最佳答案
要获取当前函数名称,请使用 #function
字面值。
至于实例ID,看起来你有两个选择:
继承自
NSObject
(UIKit 类无论如何都会继承它)以便类实例具有实例 ID:class MyClass: NSObject { override init() { super.init() print("[DBG: \(#function)]: \(self)") } }
如果您的类没有继承自
NSObject
,您仍然可以通过内存地址识别您的实例:class Jumbo { init() { print("[DBG: \(#function)]: \(Unmanaged.passUnretained(self).toOpaque())") } }
关于swift - 如何在 Swift 中获取类实例 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49289040/