使用泛型的优点
使用泛型的优点有很多:
- 泛型提供了一个强类型的编程模型
- 编译时的类型检查减少了运行时发生数据类型转换异常的几率
- 简化了代码,缓解了代码膨胀。
- 性能得到了提升,不需要在运行时再做类型检查。
- 代码的可读性更好,并且有更好的代码智能提示。
其实在最新的XCode 7.X中,苹果也悄悄地加入了Objective-C语言的弱泛型支持,见下面代码。
NSMutableArray<NSString *>* arrString = [NSMutableArray new]; //可以在NSMutableArray后面加上数据类型,这样就声明了一个泛型的NSMutableArray
[arrString addObject:[NSNumber numberWithUnsignedInteger:1]]; //这里编译器会警告你添加了错误的数据类型,但是不会强制报错。
可以在声明NSMutableArray时添加一个弱泛型约束,之所以是弱泛型,是因为编译器会帮你检查数据类型是否正确,如果不正确会有一个警告,但是不会强制报错,代码还是可以编译过的。
![](https://i-blog.csdnimg.cn/blog_migrate/1b778b93610f90e3dc71eb90c0b61201.webp?x-image-process=image/format,png)
写代码时XCode会自动提示它你应该添加什么类型的数据
![](https://i-blog.csdnimg.cn/blog_migrate/c7c7678e82bb479e578bc18eaf4cee7c.webp?x-image-process=image/format,png)
取值也会告诉你里面保存了什么类型的数据
![](https://i-blog.csdnimg.cn/blog_migrate/cf33073db5f7c012f0113d457ca4a3e6.webp?x-image-process=image/format,png)
如果你把错误的数据类型存进去,编译器会警告,但不是强制报错。