博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC 中的block使用
阅读量:7052 次
发布时间:2019-06-28

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

  在iOS的开发过程中,使用块的地方很多也很方便,但是在使用块的过程中要注意内存泄露的问题。

  在块创建的时候,会对块内的所有对象的引用计数加一,直到块销毁,所以在使用块的过程中需要我们进行处理,在这里以AFNetworking的代码举例,代码如下:

  

__weak __typeof(self)weakSelf = self; self.backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^{     __strong __typeof(weakSelf)strongSelf = weakSelf; }];

  weakSelf是为了block不持有self,避免循环引用,而再声明一个strongSelf是因为一旦进入block执行,就不允许self在这个执行过程中释放。block执行完后这个strongSelf会自动释放,没有循环引用问题。

转载于:https://www.cnblogs.com/pretty-guy/p/4595989.html

你可能感兴趣的文章
Vue+Vue Router+Axios+Webpack+Flask+MySQL实现简单的注册、登录验证功能
查看>>
来聊聊对象
查看>>
Spring Cache
查看>>
基于Nginx和Memcache的负载均衡集群架构设计
查看>>
清除TextView周边空白区域
查看>>
互联网威胁狩猎框架 白皮书
查看>>
iOS开发-CocoaPods的安装与使用
查看>>
Android SDK Manager连不上Google服务器的解决办法
查看>>
js常用的事件
查看>>
正则表达式
查看>>
Mysql zip的下载地址
查看>>
Linux Swap交换分区介绍总结
查看>>
cross-platform-apps-qt-vs-html5
查看>>
python 协程 深入浅出(二)
查看>>
Go语言中的panic recover defer
查看>>
hotspot虚拟机对象
查看>>
Java注解学习总结
查看>>
ESXI 主机开启mob
查看>>
Linux USB 驱动开发(一)—— USB设备基础概念
查看>>
关于乱码问题的机理分析
查看>>