Avatar ·

如何在Swift中输出变量的内存地址?(用于调试)

大家好!我是一名初学iOS开发者,在调试代码时遇到了一个问题。我需要弄清楚两个变量是指向内存中的同一个对象,还是不同的副本。 我知道在Objective-C中,可以在`NSLog`中使用`%p`,但在Swift中由于严格的类型系统,这变得更复杂了。我尝试了不同的方法,但都没有成功。 以下是我关心的示例: ```swift class Person { var name: String init(name: String) { self.name = name } } let person1 = Person(name: "Alice") let person2 = person1 person2.name = "Bob" print(person1.name) // 输出 "Bob" — 说明这是引用类型 ``` 如何输出`person1`和`person2`对象存储的实际内存地址,以确认它们确实指向同一块内存?我试过`print(person1)` — 但这输出的是对象的描述,而不是地址。我也试过`withUnsafePointer(to: &person1)` — 但这输出的是变量本身的地址。