Ios面试复习--泛型

1.Ios9 新特性---泛型

--1.在集合类数据中 ,直接索引出存储的某一对象调用更方便

规定该集合类的存储数据类型

直接调用方法更便利

--2.动态绑定属性类型

声明该对象持有某一泛型,并将该泛型,用作某属性类型,这样的设计优于id这种动态数据类型

Ios面试复习--泛型_第1张图片

声明某一变量为泛型

动态绑定对象的属性类型

2.泛型的协变和逆变

--1.协变 利用 __covariant 关键字 修饰泛型

既<__covariant ObjectType>

__covariant 协变 关键字 用于泛型数据强转类型 可以向上强转,子类可以转成父类

声明泛型后,同类型指针相互赋值,但是其泛型指针指向对象不同会报出警告

Ios面试复习--泛型_第2张图片

这时,由于Dog 继承于Pet 所以可以 通过协变关键字 __covariant 进行子类向父类的协变

Ios面试复习--泛型_第3张图片
Ios面试复习--泛型_第4张图片
通过 __covariant 关键字解决类似问题

--2. __contravariant 逆变关键字  用于泛型数据强转类型 可以向下强转,父类可以转成子类

Ios面试复习--泛型_第5张图片

使用同理

你可能感兴趣的:(Ios面试复习--泛型)