A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yyyyyyyyqs 中级黑马   /  2015-7-3 00:30  /  833 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

在id的定义中,已经包好了*号。id、指针只能指向os的对象。
  1. //动物类
  2. Animal *animal = [Animal  new];
  3. //狗 的类,狗继承自动物
  4. Dog *dog = [Dog new];
  5. Dog *dog = [Dog new];
  6. //注意id的使用
  7. //id类型的使用
  8. id obj2;
  9. obj2 = ani;
  10. [obj2 run];        //动物在跑

  11. obj2 = dog;
  12. [obj2 run];          //狗在跑

  13. //NSObject和id都可以指向任何对象
  14. //NSObject对象会进行编译时检测(需要进行强制转换)
  15. //id不需要强制转换,id可以直接使用
  16. //编译器看到id后,认为是动态类型,不再检查类型
  17. //猫的类,猫继承自动物
  18. Cat *cat = [Cat new];
  19. //定义id类型
  20. id obj = cat;//id obj = dog;
  21. [obj run];
复制代码

2 个回复

倒序浏览
学习了,
回复 使用道具 举报
yangzhen5352 来自手机 中级黑马 2015-7-3 07:20:17
藤椅
yyyyyyyyqs 发表于 2015-7-3 00:30
di是一种通用的对象类型,它可以用来存储属于任何类的对象,可以理解为万能指针!

在id的定义中,已经包好 ...

受益匪浅啊,讲的有道理!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马