iOS 出现的一些关键字

iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值
好处:
1.迎合swift
2.提高我们开发人员开发规范,减少程序员之间交流

  • nullable 和 nonnulla
 注意:OS9新出关键字nonnull,nullable只能修饰对象,不能修饰基本数据类型
 
 nullable作用:表示可以为空
 nonnull: 表示不能为空
 
在 NS_ASSUME_NONNULL_BEGIN  和NS_ASSUME_NONNULL_END 之间,定义的所有对象属性和方法都默认是nonnull,只有在想定义可以空的的个别对象属性,才加上去
例如:
@property (copy, nonatomic,nullable) NSString *name;
@property (copy, nonatomic, nonnull) NSString *name2;
  • null_resettable
 null_resettable :get 方法不能为空,set方法可以为空
 注意;如果使用null_resettable,必须 重写get方法或者set方法,处理传递的值为空的情况
例如:
@property (copy, nonatomic, null_resettable) NSString *name4;
- (NSString *)name4
{
    if (_name4 == nil) {
        _name4 = @"abc";
    }
    return _name4;
}

  • 泛型
    泛型:限制类型
 
    泛型使用场景:
    1.在集合(数组,字典,NSSet)中使用泛型比较常见.
    2.当声明一个类,类里面的某些属性的类型不确定,这时候我们才使用泛型.
 
    泛型书写规范
    在类型后面定义泛型,NSMutableArray *datas
 
    泛型修饰:
    只能修饰方法的调用.
 
    泛型好处:   
    1.提高开发规范,减少程序员之间交流
    2.通过集合取出来对象,直接当做泛型对象使用,可以直接使用点语法
  例如:
     @property (strong, nonatomic) NSMutableArray *dataArray;
     表示能dataArray 里面存储的数据存储的 NSString 类型

  • __kindof
    __kindof:表示当前类或者它子类
 
    __kindof书写格式:
    放在类型前面,表示修饰这个类型(__kindof Person *)
 
    __kindof  :在调用的时候,很清楚的知道返回类型

例如:
- (nullable __kindof UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier;

你可能感兴趣的:(iOS 出现的一些关键字)