iOS9中新增了泛型,用于限制类型。当一个类在声明的时候,某个对象的属性不确定,只有创建的时候才能够确定,可以使用泛型。
泛型放在类型后面,表示限制这个类型。
好处:
提高程序员开发规范,减少交流成本。
从数组或者字段取值都是id类型,不能调用对象的方法,但是使用泛型,就可以了。
就拿数组来说:
// 定义泛型:确定类型 表示数组元素是字符串类型的
@property (nonatomic, strong) NSMutableArray<NSString *> *array;
来看下API是怎么定义的:
@interface NSMutableArray<ObjectType> : NSArray<ObjectType>
例子:
下面我们模仿数组来自定义一个泛型:
需求:假设有个Animal,它有个属性是食物,但是我们定义时并不能确定,只有在创建的时候才能确定,
food 如果用id 来定义,就可以传入任何对象,如果用泛型声明,在创建的时候确定泛型,复制的时候就有提示了,例如下图:
具体定义如下:
Animal声明如下:
//泛型声明
@interface Animal<ObjectType> : NSObject
@property (nonatomic,strong)ObjectType food;
@end
Meat、Grass都是Food的子类。
版权声明:本文为CSDN博主「weixin_33727510」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_33727510/article/details/92615867