天天看点

【iOS9】iOS9新特性之泛型

iOS9中新增了泛型,用于限制类型。当一个类在声明的时候,某个对象的属性不确定,只有创建的时候才能够确定,可以使用泛型。

泛型放在类型后面,表示限制这个类型。

好处:

提高程序员开发规范,减少交流成本。

从数组或者字段取值都是id类型,不能调用对象的方法,但是使用泛型,就可以了。

就拿数组来说:

// 定义泛型:确定类型 表示数组元素是字符串类型的
@property (nonatomic, strong) NSMutableArray<NSString *> *array;
           

来看下API是怎么定义的:

@interface NSMutableArray<ObjectType> : NSArray<ObjectType>
           

例子:

下面我们模仿数组来自定义一个泛型:

需求:假设有个Animal,它有个属性是食物,但是我们定义时并不能确定,只有在创建的时候才能确定,

food 如果用id 来定义,就可以传入任何对象,如果用泛型声明,在创建的时候确定泛型,复制的时候就有提示了,例如下图:

【iOS9】iOS9新特性之泛型

具体定义如下:

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