美文网首页
iOS9新特性之泛型/协变/逆变

iOS9新特性之泛型/协变/逆变

作者: gzliq | 来源:发表于2016-03-26 19:58 被阅读0次

    为什么苹果要推出泛型

    1.迎合swift

    2.泛型作用:限制类型

    泛型好处:

    1.提示开发者集合中是什么类型,提高代码规范,减少程序员之间交流

    2.从集合(数组,字典,NSSet)中取出来元素可以使用点语法

    泛型声明格式:在声明类型的时候,声明泛型,在类型后面<泛型名称>

    泛型定义格式:使用类型才叫定义,类型<限制类型>

    泛型:仅仅是报警告

    id不能使用点语法

    什么样的类型才可以使用泛型?为什么集合可以使用泛型?

    只有集合才可以使用泛型,其他类型暂时不支持?

    定义泛型,必须要先声明泛型

    开发场景: 

    声明一个类,有些属性或者方法类型不确定,但是在使用这个类,就能很清楚知道这个对象中属性或者方法是什么类型

    Java,iOS

    需求:声明一个人类,在声明的时候并不知道可以做什么事情,但是创建人对象,就知道让这个人做什么事情

    泛型开发场景:限制集合

    书写格式:

    Person.h    Language.h    iOS.h    Java.h

    iOS *ios = [[iOS alloc] init];       

     Java *java = [[Java alloc] init];           

    // iOS   

    Person<iOS *> *p = [[Person alloc] init];

    p.language = ios;       

    // Java   

    Person<Java *> *p1 = [[Person alloc] init];

    p1.language = java;

    协变和逆变用于继承类型转换,子类转父类

    __covariant(协变):子类转父类

    __contravariant(逆变):父类转子类

    相关文章

      网友评论

          本文标题:iOS9新特性之泛型/协变/逆变

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