ios--->泛型
泛型
- 开发中使用场景:
- 1.限制集合中的类型,只能检测方法的调用,因为声明的泛型只能存在方法中
- 2.当一个类在声明的时候,某个对象的属性不确定,只有创建对象的时候才能确定,就可以使用泛型。
- 使用泛型的优点有很多:
- 泛型提供了一个强类型的编程模型
- 编译时的类型检查减少了运行时发生数据类型转换异常的几率
- 简化了代码,缓解了代码膨胀。
- 性能得到了提升,不需要在运行时再做类型检查。
- 代码的可读性更好,并且有更好的代码智能提示。
- 定义泛型
- 书写格式:放在类型的后面,表示限制这个类型
// 定义泛型:确定类型
@property (nonatomic, strong) NSMutableArray<NSString *> *array;
//这样定义后表示array中只能存NSString的类型
-
注意
- 从数组和字典中取出的值都是id类型,不能调用点语法,使用了泛型就可以调用点语法
- 可以在声明NSMutableArray时添加一个弱泛型约束,之所以是弱泛型,是因为编译器会帮你检查数据类型是否正确,如果不正确会有一个警告,但是不会强制报错,代码还是可以编译过的。
//可以在NSMutableArray后面加上数据类型,这样就声明了一个泛型的NSMutableArray NSMutableArray<NSString *>* arrString = [NSMutableArray new]; //这里编译器会警告你添加了错误的数据类型,但是不会强制报错 [arrString addObject:[NSNumber numberWithUnsignedInteger:1]];