美文网首页
iOS中__kindof关键字(iOS_9)

iOS中__kindof关键字(iOS_9)

作者: Homer1ynn | 来源:发表于2016-08-01 22:18 被阅读1243次

    __kindof(iOS 9 新关键字)

    例如:

    - (nonull __kindof UITableViewCell)......
    

    // xoce 5 才出instancetype

    __kindof:表示相当于当前类或者他的子类

    类的设计历史

    id:可以调用任何对象方法,不能进行编译检测(运行时容易找不到方法)

    instancetype:自动识别当前类的对象

    @interface Person : NSObject 
      + (isntancytype)person;
    @end
      
    @interface SubPerson : Person
      
    @end
      
    // 创建SubPerson类型的对象
      SubPerson *p = [SubPerson person];// 这种情况下,当我们调用person类方法来创建对象的时候,会看到提示的是instancetype person,而没有提示类信息。
    
    // 当我们使用下边的情况时
    
    @interface Person :NSObject
      + (Person *)person;
    @end
    // 这时候创建对象
    SubPerson *p = [SubPerson person];// 这种情况下,当我们调用person方法的时候会提示类型信息为Person类型,但是,这时候整条语句会提示类型不匹配警告,因为左侧为SubPerson,右侧为Person,所以我们使用下边这种情况。
    
    // 如果我们使用下边的情况
    @interface Person :NSObject
      + (__kindof Person *)person;
    @end
      
    SubPerson *p = [SubPerson person];// 这时候,我们在使用上边的方法生成对象的时候,就会提示类型信息,并且不会报类型不匹配警告。
    

    相关文章

      网友评论

          本文标题:iOS中__kindof关键字(iOS_9)

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