簡體   English   中英

如何在Swift中獲取類實例ID?

[英]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,看起來您有兩個選擇:

  1. NSObject繼承(UIKit類始終繼承它),以便類實例具有實例ID:

     class MyClass: NSObject { override init() { super.init() print("[DBG: \\(#function)]: \\(self)") } } 
  2. 如果您的類沒有從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM