文章目录

  • 1. 循环引用
  • 2. 解除循环引用
    • 1.直接调用方法
    • 2. 利用消息转发机制
    • 3. 使用带有block的定时器

CADisplayLink : 保证调用频率和品目刷新频率一致
NSTimer : 和runloop相关,之前的文章讲过,runloop会持有定时器.

1. 循环引用

CADisplayLink,NSTimer 会对target(一般是VC)产生强引用,而一般target也会持有这个定时器,因为要在合适的时机停止定时器,并且把定时器置为nil.
这样target和定时器相互持有,就会产生循环引用


2. 解除循环引用


解除引用闭环,引入一个第三方.
让定时器持有这个第三方对象.当定时器调用方法时,让这个第三方对象调用控制器里的相应方法.

1.直接调用方法

  • 第三方中调用方法


2. 利用消息转发机制

  • 然后消息转发给能处理的对象
  • 也可以这样

3. 使用带有block的定时器

注意用__weak来修饰self

12.01-内存管理_定时器的循环引用相关推荐

  1. Linux 0.01 内存管理

    源码下载 Linux 源码下载路径位于 https://mirrors.edge.kernel.org/pub/linux/kernel/,这篇博客所需要的 0.01 版本源码通过点击链接 https ...

  2. nstimer循环引用_解决NSTimer循环引用导致内存泄漏的六种方法

    demo放在了GitHub 内存泄漏的原因: self强引用timer.timer添加在runloop上,只要timer不销毁self就销毁不了.当然了你可以选择在viewWillDisappear中 ...

  3. java的内存管理_操作系统实验——java内存管理

    1.Test.java import java.util.Scanner; public class Test { public static void main(String[] args) { T ...

  4. java 内存管理_高性能Java代码之内存管理

    本文通过几个方面,来介绍Java代码的内存管理. 有的代码,GC根本就回收不了,直接系统挂掉.GC是一段程序,不是智能,他只回收他认为的垃圾,而不是回收你认为的垃圾. GC垃圾回收: Grabage ...

  5. linux内存管理_架构师必读:Linux 的内存分页管理

    内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在其中保存数据.我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念. 内存 简单地说,内存就是一个数据货架.内存 ...

  6. Spark 内存管理存储内存管理_尚硅谷大数据培训

    RDD的持久化机制 弹性分布式数据集(RDD)作为 Spark 最根本的数据抽象,是只读的分区记录(Partition)的集合,只能基于在稳定物理存储中的数据集上创建,或者在其他已有的 RDD 上执行 ...

  7. 一步一步学linux操作系统: 21 内存管理_小内存分配与页面换出

    slub 分配器工作原理 相关函数与结构体 进程创建的do_fork中会调用copy_process函数,这个函数会调用 dup_task_struct 函数 \linux-4.13.16\kerne ...

  8. C语言与JAVA内存管理_深入理解C语言内存管理

    之前在学Java的时候对于Java虚拟机中的内存分布有一定的了解,但是最近在看一些C,发现居然自己对于C语言的内存分配了解的太少. 问题不能拖,我这就来学习一下吧,争取一次搞定. 在任何程序设计环境及 ...

  9. 操作系统内存管理_操作系统6内存管理基础

    引言 花了一段时间才把之前的笔记整理了一部分,平时太忙也没啥时间.今天开始整理内存管理部分的,内存管理部分大致分为三部分笔记,第一部分就是本篇内存管理基础,第二部分是虚拟内存,第三部分高速缓存. 一个 ...

最新文章

  1. 2022-2028年中国城市地下综合管廊建设深度调研及投资前景预测报告
  2. python命令行参数处理
  3. android gradle + junit +jacoco +sonarscaner(sonarrunner) 获取单元测试覆盖率以及代码质量
  4. HTML5中的Web Notification桌面通知(右下角提示)
  5. HDU 1815, POJ 2749 Building roads(2-sat)
  6. mysql数据库标识符大小写_SQL语法区分大小写吗?
  7. Acrel 2000E/G配电室综合监控系统
  8. Android即时智能聊天软件
  9. kic炉温测试软件中文版,KIC炉温测试仪-KIC2000炉温测试
  10. 我卖掉北京500万的房产,在老家生活的这两年……
  11. 如何给Excel减肥(相关技巧和注意事项)
  12. Exception in thread Thread-0 java.lang.NullPointerException
  13. 基于CSS的个人网页
  14. 扁豆凝集素LCA/LcH填料/小扁豆凝集素-琼脂糖凝胶/双花扁豆凝集素DBA/黑皮扁豆凝集素
  15. 如何在 Visual Paradigm 上执行静默安装
  16. pfv和php,【Retina China 2019】工欲善其事必先利其器——影像学在眼底病中的应用与发展...
  17. 初级测试工程师面试指南
  18. [SDOI2009]学校食堂Dining
  19. 一个永久免费的图片鉴黄api接口
  20. MS SQL 的入门学习

热门文章

  1. 数据库建立与解析 (一)
  2. 虚拟化之路一:虚拟化概述
  3. ntp国家授时中心服务器IP地址
  4. 一直刷不动算法题,怀疑人生?试试五毒掌法!
  5. jsp调用css文件
  6. 【附源码】Python计算机毕业设计球鞋交易平台
  7. 胡萝卜的故事 第三篇
  8. 自动关闭微信自带浏览器
  9. 办理生育服务证登记证明
  10. arch模型的思路_ARCH模型拟合案例