id和nstancetype、NSObject的区别

id和NSObject的区别:

NSObject可以指向它的任意一个子类,但子类在使用它的时候必须强制转换

例如:

NSObject *haShiQi=[[Dog alloc]init];
[(Dog *)haShiQi bark];

如果直接调用会报错

当不确定数组元素的类型时,可以使用id

NSObject和id都可以指向任何对象

 

id和instancetype的区别:

instancetype 可以返回和方法所在的类相同类型的对象(基本放在返回值中,但绝对不能作为形参)

id只能返回未知类型的对象(一般作为形参)

例如

-(instancetype)init:(id)anObject;

 

posted @ 2016-01-07 13:50  零点五  阅读(244)  评论(0编辑  收藏  举报