Swift_ARC自动引用计数(强引用和弱引用)
来源:互联网 发布:百度p2p cdn 知乎 编辑:程序博客网 时间:2024/06/05 09:30
Jason类里面为 weak 弱引用 ROUSI类(可以避免循环强引用)
class Jason { var name:String? init(name:String) { print("Jason 实例化") self.name = name } weak var rousi:ROUSI? deinit { print("Jason 销毁") }}class ROUSI { var name:String? init(name:String) { print("ROUSI 实例化") self.name = name } var jason:Jason? deinit { print("ROUSI 销毁") }}func weakROUSIFucn(){ var ja:Jason? = Jason(name:"Jason") //Jason 实例化 ja!.rousi = ROUSI(name:"ROUSI") //ROUSI 实例化 var ro:ROUSI? = ROUSI(name:"Jason") //ROUSI 实例化 ro!.jason = Jason(name:"ROUSI") //Jason 实例化 --> Jason 销毁 ja = nil //Jason 销毁 --> ROUSI 销毁 ro = nil //ROUSI 销毁 }
Jason 和 ROUSI类 都是弱引用对方 (可以避免循环强引用)
class Jason { var name:String? init(name:String) { print("Jason 实例化") self.name = name } weak var rousi:ROUSI? deinit { print("Jason 销毁") }}class ROUSI { var name:String? init(name:String) { print("ROUSI 实例化") self.name = name } weak var jason:Jason? deinit { print("ROUSI 销毁") }}func weakFucn(){ var ja:Jason? = Jason(name:"Jason") //Jason 实例化 ja!.rousi = ROUSI(name:"ROUSI") //ROUSI 实例化 --> ROUSI 销毁 var ro:ROUSI? = ROUSI(name:"Jason") //ROUSI 实例化 ro!.jason = Jason(name:"ROUSI") //Jason 实例化 --> Jason 销毁 ja = nil //Jason 销毁 ro = nil //ROUSI 销毁 }
Jason 和 ROUSI类 都是Strong 强引用对方 (有待验证,官方文档译文是不调用析构函数,但是目前XCode 8.2.1正常)
class Jason { var name:String? init(name:String) { print("Jason 实例化") self.name = name } var rousi:ROUSI? deinit { print("Jason 销毁") }}class ROUSI { var name:String? init(name:String) { print("ROUSI 实例化") self.name = name } var jason:Jason? deinit { print("ROUSI 销毁") }}//strong - strong func strongToStrong(){ var ja:Jason? = Jason(name:"Jason") //Jason 实例化 ja!.rousi = ROUSI(name:"ROUSI") //ROUSI 实例化 var ro:ROUSI? = ROUSI(name:"Jason") //ROUSI 实例化 ro!.jason = Jason(name:"ROUSI") //Jason 实例化 ja = nil //Jason 销毁 --> ROUSI 销毁 ro = nil //ROUSI 销毁 --> Jason 销毁 }
阅读全文
0 0
- Swift_ARC自动引用计数(强引用和弱引用)
- 强引用和弱引用
- 强引用和弱引用
- 强引用和弱引用
- 强引用、弱引用和软引用
- 转:强引用、软引用、弱引用和虚引用
- Java强引用、软引用、弱引用和虚引用
- Java强引用、软引用、弱引用和虚引用
- 强引用,软引用,弱引用和虚引用
- 强引用,弱引用
- 强引用 弱引用
- 强引用,弱引用
- 关于强引用和弱引用
- 对象的强引用和弱引用
- .NET弱引用和强引用
- 对象的强引用和弱引用
- dll的弱引用和强引用
- C++ - 强引用和弱引用
- 使用一个for循环打印二维数组和三维数组
- 娜娜梦游仙境系列——吃不完的糖果(一维DP某个区间和最大
- Qt开发: Qt5使用VLC库推流-- 共享桌面
- ST集成传感器方案实现电子罗盘功能
- JavaScript自动化构建工具grunt、gulp、webpack介绍
- Swift_ARC自动引用计数(强引用和弱引用)
- 批处理新开多个窗口运行程序
- Octave 序言
- 我终于开通博客了
- Tesseract OCR 引擎概述
- 存储过程动态表名
- leetcode--Pascal's Triangle
- 高性能虚拟机解释器:DTC vs ITC(Indirect-Threaded Code)
- bootstrap-datetimepicker时间控件