iOS9新特性之_kindof

695 阅读1分钟

简介:

1、__kindof:表示当前类或者它子类

2、__kindof书写格式:

  • 放在类型前面,表示修饰这个类型(__kindof Person *)

3、__kindof :在调用的时候,很清楚的知道返回类型

4、id坏处:

  • 不能在编译的时候检查真实类型
  • 返回值,没有提示

使用方法如下:

1、 正常我们声明一个属性:

@property (nonatomic,strong) NSArray       *viewArray;

2、看属性我们知道viewArray是一个存储UIView的数组,但是不能保证这个元素就是UIView,除非我们阅读完整的代码才会知道。

这种情况下我们通过泛型声明这个数组

@property (nonatomic,strong) NSArray<UIView *>       *viewArray;

3、这样我们就知道了声明的viewArray是一个存储UIView类型的数组,如果赋值为UIButton或者UIWebView这样的子类型时,编译则会报警告⚠️

为了解决这个问题,__kindof应运而生

@property (nonatomic,strong) NSArray<__kindof UIView *>       *viewArray;

4、用这种结构声明的viewArray,确保这个数组可以包含UIView以及UIView的子类型