------------恢复内容开始------------

一、最近使用RxSwift在多次信号的嵌套中,发现一个对象始终始终无法释放

  开始想通过Memory Graph验证是否没有释放,一直报错,后来确认是Xcode的bug

No reply dictionary received from LeakAgent request

  

  始终无法确认问题,只能考虑使用一个弱引用的数组来验证了

  

final class WeakBox<A: AnyObject> {
weak var unbox: A?
init(_ value: A) {
unbox = value
}
} 类定义
private static var debugArray = [WeakBox<ExampleObject>]() 初始化时 KeyBoardItemsData.debugArray.append(WeakBox(self))
dump(list: KeyBoardItemsData.debugArray) 打印
private func dump(list: [WeakBox<KeyBoardItemsData>]) {
list.forEach { (item) in
print(item)
}
}

经过打印

的确存在部分没有释放的对象,但是无法确认引用循环的造成,还需要继续排查

Swift 排查引用循环的更多相关文章

  1. Xcode8的调试技能Memory Graph 实战解决闭包引用循环问题

    Xcode8的调试技能又增加了一个黑科技:Memory Graph.简单的说就是可以在运行时将内存中的对象生成一张图. 那么通过一个实际项目来练习一下吧. 首先我们写了一个自定义UIView:MyVi ...

  2. Swift 自动引用计数(ARC)

    Swift 使用自动引用计数(ARC)这一机制来跟踪和管理应用程序的内存 通常情况下我们不需要去手动释放内存,因为 ARC 会在类的实例不再被使用时,自动释放其占用的内存. 但在有些时候我们还是需要在 ...

  3. iOS开发笔记15:地图坐标转换那些事、block引用循环/weak–strong dance、UICollectionviewLayout及瀑布流、图层混合

    1.地图坐标转换那些事 (1)投影坐标系与地理坐标系 地理坐标系使用三维球面来定义地球上的位置,单位即经纬度.但经纬度无法精确测量距离戒面积,也难以在平面地图戒计算机屏幕上显示数据.通过投影的方式可以 ...

  4. Block的引用循环问题 (ARC & non-ARC)

    2010年WWDC发布iOS4时Apple对Objective-C进行了一次重要的升级:支持Block.说到底这东西就是闭包,其他高级语音例如Java和C++已有支持,第一次使用Block感觉满简单好 ...

  5. Block中的引用循环

    原文地址:http://www.cnblogs.com/lujianwenance/p/5910490.html Block在实际的开发中非常的常用,事件回调.传值.封装成代码块调用等等.很多人都对b ...

  6. iOS-NSTimer-pause-暂停-引用循环

    7月26日更新: 今天更新的主要目的是因为暂停!!!! 注:不推荐使用,并不是这样有错,而是因为这样写代码的规范问题,代码要有可读性,遵循代码即文档,使用暂停在团队合作中可能会带来误会,非必要不建议使 ...

  7. 转:Block原理及引用循环问题

    2010年WWDC发布iOS4时Apple对Objective-C进行了一次重要的升级:支持Block.说到底这东西就是闭包,其他高级语音例如Java和C++已有支持,第一次使用Block感觉满简单好 ...

  8. Swift 闭包使用(循环引用...)

    class networkTool: NSObject { //定义一个可选类型的闭包,用小括号()?括起闭包 var finishedCallBack2:((_ jsonData:String)-& ...

  9. Swift 学习笔记 (解决Swift闭包中循环引用的三种方法)

    话不多说 直接上代码 class SmartAirConditioner { var temperature:Int = //类引用了函数 var temperatureChange:((Int)-& ...

  10. Swift 弱引用与无主引用

    前言 Swift 提供了两种解决循环引用的方法,弱引用和无主引用. 弱引用和无主引用可以使循环中的一个实例引用另一个实例时不使用强引用. 1.弱引用 对生命周期中会变为 nil 的实例采用弱引用,也就 ...

随机推荐

  1. k8s 深入篇———— pod 深入实战[七]

    前言 深入一下pod 实战. 正文 在 Kubernetes 中,有几种特殊的 Volume,它们存在的意义不是为了存放容器里的数据,也不是用来进行容器和宿主机之间的数据交换. 这些特殊 Volume ...

  2. 重新点亮linux 命令树————文件权限和目录权限[九]

    前言 简单整理一下文件权限和目录权限. 正文 当打开ls -al的时候会出现相关的权限信息. 那么上面文件类型包括: 普通文件 d 目录文件 b 块特殊文件 (设备,比如u盘) c 字符特殊文件 (终 ...

  3. c# MCV 实现跨域

    前言 core跨域严格来说是要分为两步的,因为分为简单跨域和复杂跨域,第一种为直接允许跨域,第二种因为存在某些框架本身不允许put,delete这两个,那么这就是一个问题了.对的,那么mvc这种重量级 ...

  4. 重新整理数据结构与算法(c#)—— 二叉树排序树[二十二]

    前言 什么是二叉堆排序呢? 就是上面这种,一个节点大于左节点,但是小于右节点,再我写的例子中会写出大于等于右节点. 那么如何让一个数组进行变成这种二叉树呢? 其实只要有规律就很简单. 第一个元素(0) ...

  5. 微信小程序报错:Expecting 'STRING', got INVALID

    具体错误如下图: 这是因为在微信小程序的 app.json 文件中是不能包含有注释的,只需要把注释去掉就可以了.

  6. 聊聊从大模型来看NLP解决方案之UIE

    转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote 概述 自然语言处理NLP任务的实现,相比较以前基于传统机器学习算法实现方法,现在越来越集中使用大模型来实现 ...

  7. 通过定时SQL提取阿里云API网关访问日志指标

    简介: 阿里云API网关服务提供API托管服务,提供了强大的适配和集成能力,可以将各种不同的业务系统API实现统一管理.API网关同时支持将API访问日志一键存储到日志服务,通过日志服务强大的查询分析 ...

  8. 基于阿里云GPU云服务器的AIACC助力UC搜索业务性能提效380%,每年节省数千万成本

    简介: 用阿里云GPU计算实例来满足UC极致性价比需求 文丨阿里云神龙计算平台AI加速团队 & UC搜索架构部推理引擎团队 导语:作为国产行列里占有率排名第一的移动浏览器,UC浏览器自身承载着 ...

  9. OPLG:新一代云原生可观测最佳实践

    ​简介:OPLG 体系拥有成熟且富有活力的开源社区生态,同时也经过了大量企业生产环境的实践检验,是当下建设新一代云原生统一可观测平台的热门选择.但是,OPLG 只是提供了一个技术体系,如何灵活运用,解 ...

  10. [Go] Viper 加载项目配置,go build 打包配置文件进二进制

    Viper 的传统用法局部,加载到某个 package 下的全局变量后,其它 package 可以继续使用. var Conf *viper.Viper func init() { // File n ...