id的缺点
NSString *str = [XMGShop shopWithDict:nil];
NSLog(@"%@", str.length);
提问:会不会报错?会报什么错?
答:shop没有length方法,所以用id会发生一些莫名其妙的错,而且编译器不会报错(在开发阶段没发现是很严重的问题)
id和instancetybe的相同和不同点:
* 都可以代表任意类型
* instancetype只能作为返回值
* id类型可以作为返回值,也可以作为参数,也可以定义变量
* instancetype会类型检测,id不会进行类型检测