instancetype和id的区别

id的缺点

NSString *str = [XMGShop shopWithDict:nil];

NSLog(@"%@", str.length);

提问:会不会报错?会报什么错?

答:shop没有length方法,所以用id会发生一些莫名其妙的错,而且编译器不会报错(在开发阶段没发现是很严重的问题)

 

id和instancetybe的相同和不同点:

* 都可以代表任意类型
* instancetype只能作为返回值
* id类型可以作为返回值,也可以作为参数,也可以定义变量
* instancetype会类型检测,id不会进行类型检测

 

posted @ 2020-04-06 21:54  千面客  阅读(313)  评论(0)    收藏  举报