swift的初始化与反初始化(init, deinit)
来源:互联网 发布:基带工程师知乎 编辑:程序博客网 时间:2024/06/06 16:52
学习swit语法,本文是讨论class的init()与deinit(),本人是做java出生,java的gc在swift中也得到了很好的解释,看swift初始化没有难度,当引用在代码中不在使用的时候,swift内存就要释放,deinit()方法就会被得到调用,还有个概念可以帮助理解,referencecount(引用计数器), 当引用使用的时候计数器会+1,反之不使用的时候会-1.下面来看代码解释刚刚的理解。
本次例子在xcode playground中演示
因为在playground中,andrea的引用一直没有释放掉,deinit()方法没有得到调用,我们使用个小技巧
使用代码块,这样deinit()方法就会别调用了,我们再加一个Person数组看下,如果数组中一直持有andrea对象的引用会是什么样子
持有引用后对象就没有释放内存,也就是没有调用deinit()方法,想要释放内存就清除people数组中元素
这样就被释放了。还有一种情况对象之间有弱引用,有弱引用也是不会释放内存的
这样的内存泄漏十分难定位,这时候为了避免这样的错误,在弱引用前加上weak关键字,swift就会回收那部分内存了
0 0
- swift的初始化与反初始化(init, deinit)
- Swift - 类初始化和反初始化方法(init与deinit)
- Swift(6)初始化和释放 init-deinit
- Swift 类的初始化和反初始化
- Swift学习 init()和deinit()
- Swift - 类初始化和反初始化方法
- 初始化的init
- Swift初始化init中的一些坑
- 内核的初始化和init的初始化
- 15.Swift-反初始化过程Deinitialization
- Swift的初始化方法
- [Swift]Swift的初始化方法
- Swift deinit
- busybox的init初始化进程
- busybox的init初始化进程
- super init的初始化调用
- Java的<init>,<cinit>与类的初始化顺序
- 《初始化和反初始化》
- 深度学习算法实践14---去噪自动编码机(dA)的Theano实现
- RMAN初学
- Python基础09 面向对象的进一步拓展
- OMXCodec,
- 手把手教你使用git
- swift的初始化与反初始化(init, deinit)
- git 操作
- 使用keepalived实现双机热备
- Min-Min算法实现
- php中判断mysql数据库中某一个数据库是否存在
- OOP五大原则
- windows 下mysql更新用户password异常后导致的问题
- Python基础10 反过头来看看
- Laravel框架分析