OC的万能指针

id类型:

di是一种通用的对象类型,它可以用来存储属于任何类的对象,可以理解为万能指针!

在id的定义中,已经包好了*号。id、指针只能指向os的对象。

 

用NSObject访问子类对象方法

NSObject *obj = cat;

[(Cat*)obj run];

id类型应用场景:

1 //动物类
2 Animal *animal = [Animal  new];
3 //狗 的类,狗继承自动物
4 Dog *dog = [Dog new];
5 //猫的类,猫继承自动物
6 Cat *cat = [Cat new];
7 //定义id类型
8 id obj = cat;//id obj = dog;
9 [obj run];
 1 Dog *dog = [Dog new];
 2 //注意id的使用
 3 //id类型的使用
 4 id obj2;
 5 obj2 = ani;
 6 [obj2 run];        //动物在跑
 7 
 8 obj2 = dog;
 9 [obj2 run];          //狗在跑
10 
11 //NSObject和id都可以指向任何对象
12 //NSObject对象会进行编译时检测(需要进行强制转换)
13 //id不需要强制转换,id可以直接使用
14 //编译器看到id后,认为是动态类型,不再检查类型

 

posted @ 2015-07-02 23:23  预估计  阅读(283)  评论(0编辑  收藏  举报