美文网首页
id、instancetype和__kindof返回值类型

id、instancetype和__kindof返回值类型

作者: ShenYj | 来源:发表于2017-03-23 17:27 被阅读18次

通常在我们定义静态方法,返回实例对象时,将返回值类型定义成instancetype,除了instancetype修饰外,还有id__kindof两种关键字,接下来简单介绍下三者的区别

  • id
    • 返回值为id类型
      • 坏处是不能在编译的时候检查真实类型,可以用任意类型接收,不会有任何警告
      • 在使用实例时无法使用点语法,归根结底还是因为类型
  • 指定具体类型
    • 返回值为指定的具体类型
      • 缺点是继承后,子类调用方法返回值仍然是父类方法中指定的类型
  • instancetype
    • 返回值为instancetype类型
      • 相对于id类型可以自动识别当前实例的类(应用于继承)
      • 缺点与id类似,在调用方法时,还是不能确定返回值真实类型,仍然可以使用任意类型接收
  • __kindof XXX类名 iOS 9 新增
    • 返回值为__kindof XXX类名当前类或者它的子类
      • 在调用的时候,通过编译器的智能提示可以直观的看到返回值具体类型

相关文章

  • id、instancetype和__kindof返回值类型

    通常在我们定义静态方法,返回实例对象时,将返回值类型定义成instancetype,除了instancetype修...

  • 【iOS】instancetype和id有什么异同

    相同之处 instancetype和id都能用来表示任意类型 不同之处 instancetype只能作为返回值类型...

  • id、instancetype、__kindof

    id类型:不会进行编译检查。instancetype:只能用于返回值类型,会自动识别当前类对象,进行编译时检测。_...

  • 项目

    1.编译链接 1> id和instancetype的区别 instancetype只能做返回值,编译时判断真实类型...

  • instancetype

    instancetype在类型表示上,跟id一样,可以表示任何对象类型 instancetype只能用在返回值类型...

  • iOS(UI)之instancetype 4

    instancetype在类型表示上,跟id一样,可以表示任何对象类型 instancetype只能用在返回值类型...

  • instancetype和id

    instancetype在类型表示上跟id一样,可以表示任何对象类型;instancetype只能作用在返回值上,...

  • id和instancetype异同点

    相同点:id和instancetype都可以作为方法的返回值类型 不同点:1.如果返回值类型是instancety...

  • instancetype和id的区别

    //问题1:instancetype和id区别?答:instancetype只能作为返回值而id可以作为属性,参数...

  • id 与 instancetype 区别

    id 与 instancetype 区别 : 1.id 可以当返回值类型并且可以声明对象 2.instancety...

网友评论

      本文标题:id、instancetype和__kindof返回值类型

      本文链接:https://www.haomeiwen.com/subject/wkdtottx.html