zoukankan      html  css  js  c++  java
  • iOS9新特性之常见关键字、泛型

    #pragma mark -- nullable


    nullable:可以为空,只能修饰对象,不能修饰基本数据类型
    // 方式一:
    @property (nonatomic, copy, nullable) NSString *name;
    // 方式二:
    @property (nonatomic, copy) NSString *_Nullable name;
    // 方式三:
    @property (nonatomic, copy) NSString *__nullable name;

    // 方法中
    - (nullable NSString *)test:(nullable NSString *)str;
    - (NSString * _Nullable)test1:(NSString * _Nullable)str;

    #pragma mark -- nonnull

    nonnull: 不能为空,只能修饰对象,不能修饰基本数据类型

    // 方式一:
    @property (nonatomic, copy, nonnull) NSString *name;
    // 方式二:
    @property (nonatomic, copy) NSString * _Nonnull name;
    // 方式三:
    @property (nonatomic, copy) NSString * __nonnull name;

    // 方法中
    - (nonnull NSString *)test:(nonnull NSString *)str;
    - (NSString * _Nonnull)test1:(NSString * _Nonnull)str;

    #pragma mark -- null_resettable

    null_resettable: get:不能返回为空, set可以为空

    @property (nonatomic, copy, null_resettable) NSString *name;


    // 注意;如果使用null_resettable,必须 重写get方法或者set方法,处理传递的值为空的情况


    #pragma mark -- _Null_unspecified

     _Null_unspecified:不确定是否为空

    方式一
    @property (nonatomic, copy) NSString *_Null_unspecified name;
    方式二
    @property (nonatomic, copy) NSString *__null_unspecified name;

    #pragma mark -- 泛型

    @property (nonatomic, strong) NSMutableArray<NSString *> *arrayM;

    // 表明arrayM数组中存放的对象只能是NSString类型的对象

    // 开发规范、从数组中取出来对象,直接当做泛型对象使用,可以直接使用点语法,提高开发效率

    #pragma mark -- __kindof

    // __kindof Person *:表示返回值可以是Person类或者它的子类,外面使用的时候可以很清楚的知道返回值的类型

    + (__kindof Person *)person;

     更多内容--> 博客导航 每周一篇哟!!!

    有任何关于iOS开发的问题!欢迎下方留言!!!或者邮件lieryangios@126.com 虽然我不一定能够解答出来,但是我会请教iOS开发高手!!!解答您的问题!!!

  • 相关阅读:
    ES6新特性:使用export和import实现模块化
    常见Linux/Unix开发辅助命令什锦
    Spark高速上手之交互式分析
    Lua中的元表与元方法
    explicit 构造函数
    【排序】基数排序(计数排序、桶排序)
    拓展训练—心得体会
    poj3411--Paid Roads(bfs+状压)
    点击单选button后的文字就可以选定相应单选button
    hdu 2349 最小生成树
  • 原文地址:https://www.cnblogs.com/CoderEYLee/p/Object-C-0012.html
Copyright © 2011-2022 走看看