&self - 我是否获得了该对象的地址

Hum*_*Cer 1 objective-c

我创建了同一个类的2个对象.在方法中我这样做:

NSLog(@"This object is on address %p\n",&self);`
Run Code Online (Sandbox Code Playgroud)

我为同一个类的两个不同对象获得相同的地址.

当我在课外做这个:

NSLog(@"This object is on address %p\n",&myObject);
and
NSLog(@"This object is on address %p\n",&anotherObject);
Run Code Online (Sandbox Code Playgroud)

我得到两个不同的地址.我错过了一些关于自我运作的事情吗?它不应该是指向对象的指针吗?

不同的角度:如何从该对象的类的方法中获取对象的地址?

感谢您的时间.

shf*_*301 5

在Objective C中,对类的引用已经是指针.通过获取地址self或者myObject您将获得存储变量的地址(可能在堆栈中).

所以只需打印:

NSLog(@"This object is on address %p\n", self);
Run Code Online (Sandbox Code Playgroud)

要么

 NSLog(@"This object is on address %p\n", myObject);
Run Code Online (Sandbox Code Playgroud)

将打印该类的地址.