OC泛型的使用

泛型的作用:

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

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

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

@interface TableModel : NSObject
泛型的好处

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

    self.dataSource[0].height

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

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

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

什么时候使用泛型

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

定义
@interface TableModel : 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 *dic1 = [[TableModel alloc]init];
    dic1.height = 10;
    dic1.dog = a;
    TableModel *dic2 = [[TableModel alloc]init];
    dic2.height = 10;
    dic2.dog =b;

你可能感兴趣的:(OC泛型的使用)