IOS9新特性

常见关键字

    • 迎合swift语言,在swift中任何一个对象都是需要约束是否为空。

      • 好处:提高开发规范
      • 作用:在方法中才发挥作用,表示方法的参数或者返回值是否为空

      注意

      1. 只能使用于对象类型
      2. NS_ASSUME_NONNULL_BEGIN与 NS_ASSUME_NONNULL_END之间所有的对象都是nonnull

      eg:

      为空时

      nullable:get,set可能为空
      方式一:
      @property (nonatomic, strong, nullable) NSString *name;
      方式二:
      @property (nonatomic, strong) NSString * _Nullable name;
      方式三:
      @property (nonatomic, strong) NSString * __nullable name;

      非空时

      nonnull:get,set非空
      方式一:
      @property (nonatomic ,strong, nonnull) NSString *name;
      @property (nonatomic ,strong) NSString * _Nonnull name;
      @property (nonatomic ,strong) NSString * __nonnull name;

      不确定

      _Null_unspecified:不确定
      null_resettable:set可以为空,get不可以为空
      注意:必须要处理为nil的情况
      方式一:
      @property (nonatomic ,strong, null_resettable) NSString *name;

======

泛型

  1. 泛型:限制类型
  2. 泛型使用场景
    • 用于集合,数组,字典,NSSet
    • 当声明一个类的时候,某个属性不确定类型,就可以使用泛型。
  3. 泛型好处

    • 用于提高开发规范,一看就知道集合中是什么东西
    • 取出的元素可以直接使用点语法
      1. 泛型书写
    • 如何定义泛型:在类型后面限制,<限制类型>
    • 如何声明泛型:在声明一个类的时候,在类型后面<泛型名称>,泛型名称随意取
      1. 注意
    • 并不是任何对象都能使用泛型

    * 泛型只用于方法调用

    自定义泛型(声明泛型)

    Person:语言属性,iOS,Java

    ===
    代码块

    **Person Language iOS 类**
    
    - (void)viewDidLoad {
    

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    Person

====

kingOf

  • __kindof:

    相当于,修饰对象,用于方法返回值,描述返回的类型是当前类或者子类-

  • id:

    1. 不能使用点语法
    2. 能调用任何对象的方法,导致不能进行编译检查

你可能感兴趣的:(IOS9新特性)