id和instancetype区别
作用
instancetype:可以返回明确的类型,但不能作为参数类型。
id:可以用来表示变量和方法参数的类型。如果程序运行时无法确定一个对象的类型,就可以将该对象声明为id。
异同
1、相同点
都可以作为方法的返回类型
2、不同点
- instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;
- instancetype只能作为返回值,不能像id那样作为参数
推荐用法
作为返回值时,使用instancetype。
作为参数时,只能使用id。
Objective-C中的instancetype和id区别
时间: 2024-10-13 21:13:25