OC泛型的使用

作者: 超级卡布达 | 来源:发表于2018-12-15 12:13 被阅读864次
    泛型的作用:

    1.限制类型
    2.提高代码规范,减少沟通成本,一看就知道集合中是什么类型

    @property (nonatomic,strong) NSMutableArray<TableModel *> *dataSource;
    
    泛型定义用法:

    类型<限制类型>,在声明类的时候,在类的后面<泛型名称>

    @interface TableModel<DogType> : NSObject
    
    泛型的好处

    1.从数组中取出来,可以使用点语法

        self.dataSource[0].height
    

    2.给数组添加元素,有提示

     self.dataSource addObject:<#(nonnull TableModel *)#>
    

    id类型是不能使用点语法的

    什么时候使用泛型

    在声明类的时候,不确定某种属性或方法类型,在使用这个类的时候才确定,就可以采用泛型
    如果没有自定义泛型,默认就是id类型

    定义
    @interface TableModel<DogType> : NSObject
    @property(nonatomic,strong)DogType dog;
    @property(nonatomic,assign)CGFloat height;
    
    @end
    @interface BigDog : NSObject
    @property(nonatomic,copy)NSString *name;
    
    @end
    @interface SimlDog : NSObject
    @property(nonatomic,copy)NSString *name;
    
    @end
    
    使用
        BigDog *a = [[BigDog alloc]init];
        SimlDog *b = [[SimlDog alloc]init];
    
        TableModel<BigDog *> *dic1 = [[TableModel alloc]init];
        dic1.height = 10;
        dic1.dog = a;
        TableModel<SimlDog *> *dic2 = [[TableModel alloc]init];
        dic2.height = 10;
        dic2.dog =b;
    

    相关文章

      网友评论

        本文标题:OC泛型的使用

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