instancetype与id的区别

       (1)instancetype == id == 万能指针 == 指向一个对象

        1 id在编译的时候不能判断对象的真实类型

          instancetype在编译的时候可以判断对象的真实类型

        idinstancetype除了一个在编译时不知道真实类型, 一个在编译时知道真实类型以外, 还有一个区别

          id可以用来定义变量, 可以作为返回值, 可以作为形参

          instancetype只能用于作为返回值

       (2)如果init方法的返回值是instancetype, 那么将返回值赋值给一个其它的对象会报一个警告

        如果init方法的返回值是id, 那么将init返回的对象地址赋值给其它对象是不会报错的

        自定义构造方法时, 返回值尽量使用instancetype, 不要使用id


猜你喜欢

转载自blog.csdn.net/baidu_28787811/article/details/80545552
今日推荐