都可以作为方法的返回类型,但一般是用instancetype。
instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象。
作为方法返回类型时的区别:
返回id ,NSString *str =【Person person】 类方法返回的是id,id可以是任何类型,赋值给str编译就没有问题。
但是 返回类型时instancetype时,他会返回你当前实现这个类方法的类的名字,上述例子就会返回一个 Person ,编译时 你将一个person类型的实例 赋值给字符串,就会出现警告
instancetype只能作为方法的返回值类型,不能修饰参数
网友评论