iOS 9 新特性
2016-07-11 22:00
295 查看
1、泛型
苹果为什么推出泛型:
泛型好处:
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;
2、协变、逆变
__covariant(协变):用于数据强制转换,可以向上强转,子类->父类
__contravariant(逆变):用于数据强制转换,可以向下强转 父类->子类
3、__kinkof
放在类型前面,表示修饰这个类型(
在定义初始化类方法返回值类型的时候,最早使用id作为返回值类型,后来使用instancetype,现在可以使用__kindof加类名
苹果为什么推出泛型:
泛型好处:
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;
2、协变、逆变
__covariant(协变):用于数据强制转换,可以向上强转,子类->父类
__contravariant(逆变):用于数据强制转换,可以向下强转 父类->子类
3、__kinkof
__kindof:一般用在方法返回值的前面修饰,表示返回值可以是当前类或者它子类
__kindof书写格式:
放在类型前面,表示修饰这个类型(
__kindof Person *),表示可以是Person类或者它的子类
在定义初始化类方法返回值类型的时候,最早使用id作为返回值类型,后来使用instancetype,现在可以使用__kindof加类名
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- OpenERP v6.1新特性解读 (一)整体易用性、界面、移动性
- OpenERP v6.1新特性解读 (三) 技术
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- jackson、Gson反序列化 泛型
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- JAVA泛型—— 3fe8 转
- JAVA泛型详解——转
- C#6.0中10大新特性的应用和总结
- 编写高质量代码改善C#程序――使用泛型集合代替非泛型集合(建议20)
- 简单学习C#中的泛型方法使用
- C#通过反射创建自定义泛型
- C#泛型用法实例分析
- 解读ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性
- C语言泛型编程实例教程