iOS __strong __weak @Strongify @Weakify
2024-09-09 19:29:18
@Strongify,@Weakify主要是在block中使用.
因为block一般都在对象内部声明.. 如果在block内部使用了当前对象的属性,就会造成循环引用(block拥有当前对象的地址,而当前对象拥有block的地址),而引起内存泄露,block和当前对象都无法释放.
@weakify(self) 将当前对象声明为weak.. 这样block内部引用当前对象,就不会造成引用计数+1可以破解循环引用
@strongify(self) 相当于声明一个局部的strong对象,等于当前对象.可以保证block调用的时候,内部的对象不会释放
大概用例:
__weak __typeof(self)weakSelf = self;
block = ^(){
__strong __typeof(weakSelf)strongSelf = weakSelf; // strongSelf.property
};
详细讲解文章:
最新文章
- host位置
- yiii 框架登录 判断是否是游客模式及未登录状态
- PHP中使用Session配合Javascript实现文件上传进度条功能
- 批量插入使用SqlBulkCopy
- 虚拟机Linux和Windows之间互传文件的好帮手WinSCP
- Eclipse热部署JSP
- Solr4.8.0源码分析(6)之非排序查询
- 从ThoughtWorks 2017技术雷达看微软技术
- Python:main函数
- PHP内核之旅-2.SAPI中的Cli
- SUSE12SP3-Mycat(1)安装
- Self-organizing Maps及其改进算法Neural gas聚类在异常进程事件识别可行性初探
- xdoj-1297 Tr0y And His Startup
- 常见的爬虫分析库(4)-爬虫之PyQuery
- HTTP的简单的解析
- 在Qt项目中如何添加一个已有的项目作为子项目
- Ground Defense【不知道叫啥可能就是枚举】
- 移动端常用的 meta设置
- MySQL 创建自定义函数
- python之multiprocessing创建进程