Objective-C学习笔记-之id

id是一种泛型,用于表示任何类的对象。回忆一下,对象是带有代码的Cstruct。因此,id实际上是一个指针,指向其中的某个结构。在概念上,id有点类似于java中的Object类,可以转换成任何数据类型。在内部处理上,这种类型被定义为指向对象的指针,实际上是一个指向这种对象的实例变量的指针。

下面是id在objc.h中的定义:

typedef struct objc_object {  

Class isa;  

} *id; 

从上面看出,id 是指向struct objc_object 的一个指针。也就是说,id 是一个指向任何一个继承了Object(或者NSObject)类的对象。需要注意的是id 是一个指针,所以在使用id的时候不需要加星号。

在Objective-C中,id取代了int类型成为默认的数据类型(在C语言中,int是默认的函数返回值类型),关键字nil 被定义为空对象,也就是值为0 的对象。关于更多的Objective-C基本类型,读者可以参考obj/objc.h文件。

id shape = shapes[i];

代码从shapes数组中获取id(即指向某个对象的指针),并将其赋值给名为shape(它具有类型id)的变量。这是一种指针赋值的过程,它实际上并不会赋值shape的全部内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值