博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift-闭包产生的循环引用以及解决办法
阅读量:4045 次
发布时间:2019-05-24

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

循环引用的概念,不做赘述,下面直接用一个小 demo,说明 swift 闭包产生的循环引用:

class ViewController: UIViewController {
// 声明一个闭包 var closure:(() -> ())? override func viewDidLoad() { super.viewDidLoad() // 解决闭包循环引用 // 方式01(iOS 5.0)// closure = {[weak self] () -> () in// // print(self?.view) // 要加 '?'// // } // 方式02(iOS 4.0)// closure = {[unowned self] () -> () in// // print(self.view) // 不加 '?'// // } // 方式03 weak var weakSelf = self closure = { () -> () in print(weakSelf?.view) } }// 重写 析构函数,看控制器是否被释放 deinit{ print("viewController挂了") }}

验证控制器是否被释放,在 sb 中嵌套一层 跳转关系,运行跳转即可.

具体可到下面地址 下载 小demo.

转载地址:http://mfwci.baihongyu.com/

你可能感兴趣的文章
Chrome渲染分析之Timeline工具的使用
查看>>
浏览器加载 CommonJS 模块的原理与实现
查看>>
Node.js框架之express与koa对比分析
查看>>
async 函数的含义和用法
查看>>
Understanding the Node.js Event Loop - Node.js at Scale
查看>>
Koa框架实践与中间件原理剖析
查看>>
Express和koa各有啥优缺点?
查看>>
进程、线程、协程之概念理解
查看>>
为什么觉得协程是趋势?
查看>>
PV、UV、VV、CV
查看>>
用Node.js实现Restful风格webservice
查看>>
REST简介
查看>>
理解RESTful架构
查看>>
nginx日志切割
查看>>
js函数的作用域与this指向
查看>>
腾讯QQ团队开源分布式后台服务引擎msec
查看>>
看看腾讯和百度等这样的大型网站系统架构是如何演化的
查看>>
AMQP与QPID简介
查看>>
nginx虚拟主机
查看>>
Nginx 性能调优
查看>>