我创建了同一个类的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)
我得到两个不同的地址.我错过了一些关于自我运作的事情吗?它不应该是指向对象的指针吗?
不同的角度:如何从该对象的类的方法中获取对象的地址?
感谢您的时间.
在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)
将打印该类的地址.