关于OC中对象的地址

今天研究了一下一个对象方法:class,  [self.class]的的返回值是本类在代码区中的地址,但是可以用NSString 接受到它的返回值,而且是用%@打印出的是类的名称,所以可以得出

在类存储的时候,整个类的地址就是存储类名这个属性的地址,并且这个属性的数据类型是NSString.

之后我又在类中加了一个属性 @property NSString *name; 当我用id p1 = l1.name;还有id p2 = l1;然后用%p打印p1,p2的时候法相结果并不一样,这说明,我们自己定义的属性,并不是对象的第一个属性,而用%@打印p2我发现是<类名:类的地址>,不由得让我想起来description的内容(先不管这个),所以说明对象中第一个属性是一个NSString变量,内容是

@"<类名:类的地址>",NSObject的类中就定义了一个属性,就是isa指针,我就想是不是继承的属性会放在最前面,但是老师讲的isa指针是指向类在代码区中的地址的,但是它本身是不可以用NSString来接受的,但是直觉告诉我,isa的地址就是对象的地址,他也是对象的第一个属性,不过它里面存储的内容,我现在不知道怎么可以拿到.盼望大神回帖,在此谢过!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值