OC中id、NSObject *、instancetype的区别

NSObject *

NSObject确定对象类型是继承于NSObject。很常用。

id

可以指向任意类型的objcetive-c的对象,声明的对象具有运行时的特性。并不一定是NSObject对象。对于一些不能进行类型检查或者不想检查的地方,可以使用id,经常会声明delegate为id类型,在运行的时候载使用respondToSelector:检查。

instancetype

  stack overflow上面所说:“Use instancetype whenever it's appropriate, which is whenever aclass returns an instance of that same class.”

在instancetype有效的情况下,应该尽量去使用instancetype。

你可能感兴趣的:(OC中id、NSObject *、instancetype的区别)