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后,认为是动态类型,不再检查类型