& self - 我获取对象的地址

时间:2012-12-23 23:13:18

标签: objective-c

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

NSLog(@"This object is on address %p\n",&self);`

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

当我在课外做这件事时:

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

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

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

感谢您的时间。

2 个答案:

答案 0 :(得分:5)

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

所以只是打印:

NSLog(@"This object is on address %p\n", self);

 NSLog(@"This object is on address %p\n", myObject);

将打印班级的地址。

答案 1 :(得分:0)

我相信%p不要求您传递变量的地址。这是一个无效*操作。我不是在我的开发机器上自己测试,但尝试做:

NSLog(@"This object is on address %p\n", self);