swift - 如何在 Swift 中获取类实例 ID?

标签 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())")
      }
    }
    

关于swift - 如何在 Swift 中获取类实例 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49289040/

相关文章:

ios - NSFetchedResultsController swift 中的两个数组

ios - 链接两个 UISegmentedControl

ios - NSCoreDataCoreSpotlightDelegate 索引现有数据

ios - 如何同步数据源更新与线程安全的 TableView 重新加载?

ios - 状态栏在搜索时改变颜色

ios - 如何在 UITableViewCell 中向左或向右对齐 UILabel

ios - 有关使用 TableView 在 Swift 中构建数据以及在 Google map 上进行映射的建议

swift - 添加左侧按钮和标题后右侧按钮不显示

ios - 使按钮连续动画,可用 - Swift

ios - 如何给 SpriteKit 添加背景音乐?