OC中的 typeof() 和 __kindof

OC中的 typeof()和__kindof

  • typeof()
    __weak typeof(self) weakSelf = self;
    大家都比较熟悉 用于在block中避免循环引用内存泄漏,弱化self的指针,起到断开循环引用链的作用。
  • typeof() 一元运算 可以根据()内的变量自动识别并返回其数据类型。
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        //__strong防止提前释放
        __strong typeof(self) strongSelf = weakSelf; 
        strongSelf.page = 1;
        [strongSelf.dataArray removeAllObjects];
        [strongSelf loadData];
}];
  • OC中的 __kindof 是一种泛型,规定了某一类和其子类类型

__kindof 指变量中的类型和其子类 是-(BOOL)kindOfClass:中的kind~
例如:NSArray<__kindof UIView *> *viewArray;
就是指数组中不仅可以存入UIView类型 存其子类UIButton、UIImageView等也是没有问题的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容