OC泛型的使用

作者: 超级卡布达 | 来源:发表于2018-12-15 12:13 被阅读864次
泛型的作用:

1.限制类型
2.提高代码规范,减少沟通成本,一看就知道集合中是什么类型

@property (nonatomic,strong) NSMutableArray<TableModel *> *dataSource;
泛型定义用法:

类型<限制类型>,在声明类的时候,在类的后面<泛型名称>

@interface TableModel<DogType> : NSObject
泛型的好处

1.从数组中取出来,可以使用点语法

    self.dataSource[0].height

2.给数组添加元素,有提示

 self.dataSource addObject:<#(nonnull TableModel *)#>

id类型是不能使用点语法的

什么时候使用泛型

在声明类的时候,不确定某种属性或方法类型,在使用这个类的时候才确定,就可以采用泛型
如果没有自定义泛型,默认就是id类型

定义
@interface TableModel<DogType> : NSObject
@property(nonatomic,strong)DogType dog;
@property(nonatomic,assign)CGFloat height;

@end
@interface BigDog : NSObject
@property(nonatomic,copy)NSString *name;

@end
@interface SimlDog : NSObject
@property(nonatomic,copy)NSString *name;

@end
使用
    BigDog *a = [[BigDog alloc]init];
    SimlDog *b = [[SimlDog alloc]init];

    TableModel<BigDog *> *dic1 = [[TableModel alloc]init];
    dic1.height = 10;
    dic1.dog = a;
    TableModel<SimlDog *> *dic2 = [[TableModel alloc]init];
    dic2.height = 10;
    dic2.dog =b;

相关文章

  • OC泛型的使用

    泛型的作用: 1.限制类型2.提高代码规范,减少沟通成本,一看就知道集合中是什么类型 泛型定义用法: 类型<限制类...

  • OC中的泛型使用

    blog.sunnyxx.com/2015/06/12/objc-new-features-in-2015/

  • Java-API-集合框架(三)-泛型

    泛型的由来和基本使用 泛型的擦除 泛型类的使用 泛型方法的使用 泛型接口 泛型通配符(?) 通配符? 在api中的...

  • 夯实JAVA基础之 - 泛型

    泛型的定义及使用 1. 定义泛型: 2. 类中使用泛型 3. 使用泛型类 4. 使用泛型的优势? 多泛型变量的定义...

  • Java泛型

    本文介绍的知识点 泛型是什么? 泛型的使用在反射中使用泛型在集合类中使用泛型 关于泛型擦除如何理解?如何避免泛型擦...

  • java基础-day13-泛型

    泛型 1. 泛型 1.1 为什么要使用泛型 1.2 泛型的基本格式 1.3 泛型在方法中使用 1.3 泛型在类内的...

  • 四 集合 ——第二节 泛型

    文章目录 1、 泛型概念2、 使用泛型的好处3、 泛型的定义与使用 3、1 定义和使用含有泛型的类3、2 含有泛型...

  • Java 泛型

    一、泛型使用 1、泛型类 2、泛型函数 二、泛型限定符 1、泛型上限 泛型上限使用 extends 限制 多个限制...

  • Objective-C 泛型 协变 逆变

    为什么要使用泛型 如何使用泛型 限制泛型 协变 逆变 为什么要使用泛型 在使用NSArray, NSSet, NS...

  • # Swift学习 # 简单面试题

    1.什么是函数式编程? 2.swift相对于OC有哪些优点? 3.什么是泛型,swift在哪些地方使用了泛型? 4...

网友评论

    本文标题:OC泛型的使用

    本文链接:https://www.haomeiwen.com/subject/ehzohqtx.html