IOS9新特性之泛型
2016-01-15 本文已影响0人
Leessang丶
.苹果为什么推出泛型:
泛型好处:
1.迎合swift
2.提高代码规范,一看便知是什么类型
泛型作用:
1.限制类型(主要是限制集合中是什么类型)
2.从集合中取出来,可以使用点语法,不使用泛型,不能使用点语法.
泛型格式:
声明泛型格式:在声明类型的后面<类型>
@interfacePerson :NSObject
@property(nonatomic,strong) ObjectType language;
ObjectType就是指定的类型
定义泛型格式:在使用类型后面<类型>
ObjectType = NSString *
@property(nonatomic,strong)NSMutableArray *arr;
注意点:泛型仅仅报警告,并不是编译错误.
集合取出来类型都是id,id不能使用点语法.
数组里不能传入nil,真的会报错(运行).
疑问:为什么集合可以使用泛型.
并不是任何系统类型,都可以使用泛型,一般是集合(NSSet,字典,数组)
字典使用泛型格式:NSDictionary
@property(nonatomic,strong)NSDictionary *name;
泛型开发中使用场景(需求):声明类的时候不确定,使用类型创建对象才确定,就可以使用泛型
比如有个人,在声明这个Person类,并不知道会哪些编程语言(iOS,Java),在创建这个人类的时候,才确定他会什么.
自定义泛型?在声明自定义类的时候,声明泛型,在使用自定义类的时候,定义泛型
//创建一个人,java
Person *p1 = [[Personalloc]init];
表示这个人的language属性只能是java
p1.language= java;