__kindof的用法

__kindof是在xcode7中出现的新特性,作用在于指明泛型可以包含其子类。

 

使用范例:

1.例如普通的属性声明和方法声明如下

@property (nonatomic, strong) NSArray *viewArray;
- (void)createWithViewArray:(NSArray *)viewArray;

 

2.通过加入泛型我们可以声明数组中的对象为UIView

@property (nonatomic, strong) NSArray<UIView *> *viewArray;
- (void)createWithViewArray:(NSArray<UIView *> *)viewArray;

但是这样声明的数组只能包含UIView类型的元素,如果元素被赋值为UIImageView或其他UIView的子类型时,编译器就会报警告⚠️

 

3.通过加入关键字__kindof,这个数组就可以包含泛型本身和其子类

@property (nonatomic, strong) NSArray<__kindof UIImageView *> *viewArray;
- (void)createWithViewArray:(NSArray<__kindof UIView *> *)viewArray;

 

posted @ 2019-03-12 14:07  嗷大张  阅读(271)  评论(0编辑  收藏  举报