如何在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)` — 但这输出的是变量本身的地址。