获取 Objective C 对象的内存地址?

Get memory address of Objective C object?

还有比这更好的获取内存地址的方法吗?

NSLog(@"%p", anObject);

我宁愿得到普通的 long 值。

你也可以将一些 Type* 转换为 intptr_t,并以十进制表示形式查看此地址:

NSLog(@"%lu", (uintptr_t)anObject);

在 C 中将指针地址表示为整数存在 2 typesintptr_tuintptr_t

intptr_t 定义为 __darwin_intptr_t.
__darwin_intptr_t defined as long:

typedef long            __darwin_intptr_t;

uintptr_t 定义为 unsigned long:

typedef unsigned long           uintptr_t;

I think what 对于 uintptr_t 我应该使用 %lu 而对于 intptr_t 我应该使用 %li:

NSLog(@"%lu", (uintptr_t)anObject);
NSLog(@"%li", (intptr_t)anObject);