iOS9 新特性 泛型
2016-07-23 00:00
323 查看
摘要: iOS9中新增了泛型,用于限制类型。当一个类在声明的时候,某个对象的属性不确定,只有创建的时候才能够确定,可以使用泛型。
iOS9中新增了泛型,用于限制类型。当一个类在声明的时候,某个对象的属性不确定,只有创建的时候才能够确定,可以使用泛型。
泛型放在类型后面,表示限制这个类型。
好处:
提高程序员开发规范,减少交流成本。
从数组或者字段取值都是id类型,不能调用对象的方法,但是使用泛型,就可以了。
就拿数组来说:
来看下API是怎么定义的:
需求:假设有个Animal,它有个属性是食物,但是我们定义时并不能确定,只有在创建的时候才能确定,
food 如果用id 来定义,就可以传入任何对象,如果用泛型声明,在创建的时候确定泛型,复制的时候就有提示了,例如下图:
具体定义如下:
Animal声明如下:
Meat、Grass都是Food的子类。
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的子类。
相关文章推荐
- OpenERP v6.1新特性解读 (一)整体易用性、界面、移动性
- OpenERP v6.1新特性解读 (三) 技术
- jackson、Gson反序列化 泛型
- 浏览器中唤起native app || 跳转到应用商城下载
- JAVA泛型—— 3fe8 转
- JAVA泛型详解——转
- C#6.0中10大新特性的应用和总结
- 编写高质量代码改善C#程序――使用泛型集合代替非泛型集合(建议20)
- 简单学习C#中的泛型方法使用
- C#通过反射创建自定义泛型
- C#泛型用法实例分析
- 解读ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性
- C++11的新特性简单汇总介绍 (二)
- C语言泛型编程实例教程
- C++11的新特性简单汇总介绍 (一)
- C# 泛型的简单理解(安全、集合、方法、约束、继承)分享
- C#泛型Dictionary的用法实例详解
- C#泛型和反射实例解析
- C#泛型实例详解