美文网首页
ios9 新出关键字

ios9 新出关键字

作者: 学习之路 | 来源:发表于2016-09-09 17:00 被阅读18次

    注意:新出关键字只能修饰对象 不能修饰基本数据类型
    nullable: 可为空,适配swift
    nonnull: non 非 null 空

    null_resettable: get方法不能返回为空,set方法可以为空。(例:控制器view)
    注意:null_resettable 必须重写get方法或者set方法,处理传递的值为空的情况。
    _Null_unspecified或者 __null_unspecified: 不确定是否为空
    注意 :有下划线的 只能写在属性前边

    NS_ASUME_NONNULL_BEGIN 和 NS_ASSUME_NONNULL_END 之间定义的所有的对象属性和方法默认都是nonnull(非空)

    泛型:限制类型
    泛型使用场景:在类型后面定义泛型 没有的确定泛型就是id类型
    1)、在集合(数组,字典,NSSet)中使用泛型比较常见(例:NSMutableArray<NSString *> *datas)
    2)、当声明一个类,类里面的某些属性的类型不确定,这时候我们才使用泛型。(类名后<ObjectType>冒号继承类前)
    泛型修饰:只能修饰方法的调用
    泛型好处:
    1)、提高开发规范,减少程序员之间的交流
    2)、通过集合取出来对像,直接当泛型对象使用,可以直接使用点语法

    __covariant: 协变 修饰泛型(例:<__covariant ObjectType>), 用于泛型数据强转类型,可以向上强转,子类可以转变成父类(例:子类对象给父类对象赋值)
    __contravariant: 逆变 修饰泛型(例:< __contravariant ObjectType>)用于泛型数据强转类型,可以向下强转,父类可以转变成子类(例:父类对象给子类对象赋值)

    __Kindof和id、instancetype 的优缺点:
    1、__Kindof:修饰类 表示当前类或者他的子类。(例:__kindof 类名 *) 用法:方法的返回值里面去用。在调用时能清楚的知道返回类型
    2、id的坏处:1)、不能在编译时检查真实类型
    2)、返回值没有提示
    3、instancetype 自动识别当前对象的类 但是返回还是没有提示

    相关文章

      网友评论

          本文标题:ios9 新出关键字

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