美文网首页
OC中的 typeof() 和 __kindof

OC中的 typeof() 和 __kindof

作者: T_Yang | 来源:发表于2017-05-02 15:56 被阅读349次

    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等也是没有问题的。

    相关文章

      网友评论

          本文标题:OC中的 typeof() 和 __kindof

          本文链接:https://www.haomeiwen.com/subject/vsnctxtx.html