[英]How do I get the class instance ID in Swift?
在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())") } }
我只是使用以下命令進行了快速測試:
print("\(self) \(#function) - Count \(count)")
我得到以下結果:
<XXXXXXX.FeedViewController: 0x7fcebdf05d40> viewWillAppear - Count 3
我會嘗試一下,看看是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.