博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arc如何破循环或交叉引用
阅读量:5821 次
发布时间:2019-06-18

本文共 857 字,大约阅读时间需要 2 分钟。

IOS两种常见的循环引用:

1,两个类之间互相定义对方的引用

如下:

//ARC code@interface A : NSObject @property (nonatomic,strong) B* b; @end @interface B : NSObject @property (nonatomic,strong) A* a; @end 解决方法是,其中一个的属性用strong, 一个用weak,如下:
//ARC code@interface A : NSObject @property (nonatomic,strong) B* b; @end @interface B : NSObject @property (nonatomic,weak) A* a; @end 2,Block中出现的循环引用
[self.tableView addPullToRefreshWithActionHandler:^{        self.isRefresh = YES; self.hideHud = YES; self.currentPage = 0; [self queryCarFault]; }]; 如上,如果self要退出了,也就是dealloc,但是block还没有退出,self还在占用,导致dealloc也无法退出; 修改为:
__weak BBWarningRecordTableViewController* weakSelf = self;    [self.tableView addPullToRefreshWithActionHandler:^{        weakSelf.isRefresh = YES; weakSelf.hideHud = YES; weakSelf.currentPage = 0; [weakSelf queryCarFault]; }];
 

转载于:https://www.cnblogs.com/runner42/p/5031247.html

你可能感兴趣的文章
开源 免费 java CMS - FreeCMS1.2-标签 infoSign
查看>>
开源 免费 java CMS - FreeCMS1.9 移动APP生成栏目列表数据
查看>>
Java IO流详尽解析
查看>>
Linux VSFTP服务器
查看>>
DHCP中继数据包互联网周游记
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
项目管理心得
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
通过vb.net 和NPOI实现对excel的读操作
查看>>
TCP segmentation offload
查看>>
java数据类型
查看>>
数据结构——串的朴素模式和KMP匹配算法
查看>>
FreeMarker-Built-ins for strings
查看>>
验证DataGridView控件的数据输入
查看>>
POJ1033
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
一维数组
查看>>