iOS9新特性之泛型

134 阅读1分钟

1、泛型:限制类型

  • 泛型使用场景:

    1.在集合(数组,字典,NSSet)中使用泛型比较常见.

    2.当声明一个类,类里面的某些属性的类型不确定,这时候我们才使用泛型.

  • 泛型书写规范

    在类型后面定义泛型

    @property (nonatomic, strong) NSMutableArray<NSString *> *datas;
    
    // 使用方法时能知道传入什么类型
    self.datas addObject:<#(nonnull NSString *)#>
           
    // 可以直接使用点语法
    self.datas[0].length
    
    @interface Language : NSObject
    @end
    
    @implementation Language
    @end
    
    @interface Java : Language
    @end
    
    @implementation Java
    @end
    
    @interface IOS : Language
    @end
    
    @implementation IOS
    @end
    
    // 声明泛型
    @interface Person<ObjectType> : NSObject
    // 语言
    @property (nonatomic)  ObjectType language;
    
    ///*
    // id:任何对象都能传进来
    // Language:在外面调用的时候,没有提示
    // IOS* 以后只能传对象
    // */
    - (ObjectType)language;
    - (void)setLanguage:(ObjectType)language;
    @end
    
  • 泛型修饰:

    只能修饰方法的调用.

  • 泛型好处:

    1.提高开发规范,减少程序员之间交流

    2.通过集合取出来对象,直接当做泛型对象使用,可以直接使用点语法