Skip to content

Latest commit

 

History

History
31 lines (14 loc) · 809 Bytes

File metadata and controls

31 lines (14 loc) · 809 Bytes

6.idinstanceType 有什么区别?

相同点

instancetypeid 都是万能指针,指向对象。

不同点:
  • 1.id 在编译的时候不能判断对象的真实类型,instancetype 在编译的时候可以判断对象的真实类型。
  • 2.id 可以用来定义变量,可以作为返回值类型,可以作为形参类型;instancetype 只能作为返回值类型。
区别1:

在 ARC 环境下:

instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型.

在 MRC 环境下:

instancetype 和 id 一样,不做具体类型检查

区别2:

id可以作为方法的参数,但instancetype不可以

instancetype 只适用于初始化方法和便利构造器的返回值类型