• < Objective-C >id与instancetype


    相同点:

    都可以作为方法的返回类型

    不同点:

    instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象

    instancetype只能作为返回值,不能像id那样作为方法的参数

    好处:

    能够确定对象的类型,能够帮助编译器更好的为我们定位代码书写问题

    [[[NSArray alloc] init] mediaPlaybackAllowsAirPlay];

    返回类型为instancetype:由于[[NSArray alloc]init]的返回值是NSArray*,这样编译器就能够根据返回的数据类型检测出NSArray是否实现mediaPlaybackAllowsAirPlay方法。有利于开发者在编译阶段发现错误。

    [[NSArray array] mediaPlaybackAllowsAirPlay];

    返回类型为id:[NSArray array]返回的是id类型,编译器不知道id类型的对象是否实现了mediaPlaybackAllowsAirPlay方法,也就不能够替开发者及时发现错误。

  • 相关阅读:
    UVA11584 划分成回文串
    UVA1220Party at Hali-Bula(树的最大独立集 + 唯一性判断)
    BUAA1389愤怒的DZY(最大值最小化)
    九度1502 最大值最小化问题
    App(4.25)
    App(4.24)
    App(4.23)
    App(4.22)
    学习进度条(八)
    App(4.21)
  • 原文地址:https://www.cnblogs.com/aY-Wonder/p/4576320.html
Copyright © 2020-2023  润新知