di是一种通用的对象类型,它可以用来存储属于任何类的对象,可以理解为万能指针!
在id的定义中,已经包好了*号。id、指针只能指向os的对象。
- //动物类
- Animal *animal = [Animal new];
- //狗 的类,狗继承自动物
- Dog *dog = [Dog new];
- Dog *dog = [Dog new];
- //注意id的使用
- //id类型的使用
- id obj2;
- obj2 = ani;
- [obj2 run]; //动物在跑
- obj2 = dog;
- [obj2 run]; //狗在跑
- //NSObject和id都可以指向任何对象
- //NSObject对象会进行编译时检测(需要进行强制转换)
- //id不需要强制转换,id可以直接使用
- //编译器看到id后,认为是动态类型,不再检查类型
- //猫的类,猫继承自动物
- Cat *cat = [Cat new];
- //定义id类型
- id obj = cat;//id obj = dog;
- [obj run];
复制代码 |
|