如何在Swift中获取类实例ID?
在Objective-C中,我将使用以下代码来标识一个类的实例和在控制台中调用的函数如何在Swift中获取类实例ID?,swift,Swift,在Objective-C中,我将使用以下代码来标识一个类的实例和在控制台中调用的函数 NSLog(@"[DMLOG - %@] %@", NSStringFromSelector(_cmd), self); 这将返回类似下面控制台的内容,在这里我将获得一个实例ID来跟踪对象的不同实例 [DMLOG - prepForInput] <GridBase: 0x7fb71860a190> 我刚刚使用以下命令运行了一个快速测试: print("\(self) \(#function) -
NSLog(@"[DMLOG - %@] %@", NSStringFromSelector(_cmd), self);
这将返回类似下面控制台的内容,在这里我将获得一个实例ID来跟踪对象的不同实例
[DMLOG - prepForInput] <GridBase: 0x7fb71860a190>
我刚刚使用以下命令运行了一个快速测试:
print("\(self) \(#function) - Count \(count)")
我得到了以下结果:
<XXXXXXX.FeedViewController: 0x7fcebdf05d40> viewWillAppear - Count 3
视图将出现-计数3
我会尝试一下,看看它是否有帮助。要获取当前函数名,请使用
#function
literal
对于实例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())")
}
}
刚刚签出了它,它似乎只给出了一个实例ID,如果它是ViewController,而不是任何其他类。非常奇怪,如果我将NSObject子类化,但不建议这样做,因此仍然需要找出一种方法来获取ID(如果是VC或NSObject以外的任何类)。啊,很抱歉,我错过了这一点。我没想过要试试。谢谢你,丹!这在所有课程上都非常有效!我感谢你的帮助。
class Jumbo {
init() {
print("[DBG: \(#function)]: \(Unmanaged.passUnretained(self).toOpaque())")
}
}