Tag: Yak Shaving

Xcode Playgrounds中的Swift ARC实验

并介绍自动释放池 ARC代表自动引用计数,Swift将其用于动态内存管理。 我正在遍历《 Swift编程语言(Swift 4) 》中的 “自动引用计数”一章,试图在遇到某些矛盾时涵盖所有角度。 至少那是我的第一个想法。 “自动引用计数”一章描述了强大的引用循环,展示了几种可能导致潜在引用的情况,最后,它针对给定情况提出了使用语言构造来避免它们的方法。 在本文中,“ 对象 ”一词用于指代类实例 ,因为“引用计数仅适用于类实例。 结构和枚举是值类型,而不是引用类型,并且不通过引用存储和传递。” 方案1: 对象通过属性相互引用,这两个属性都可以为“ nil` 它建议使用弱引用,以便在删除强引用时,将使用weak关键字声明的属性设置为nil 。 基类: 类人{ 命名:字符串 init(name:String){ 打印(“ \(名称)-开始初始化”) self.name =名称 } var apartment:公寓? deinit {print(“ \(name)正在被初始化”)} } 公寓类{ let单位:字符串 init(单位:字符串){ print(“ \(unit)-开始初始化”) self.unit =单位 } 弱var租户:人? deinit {print(“公寓\(单元)正在被初始化”)} } 创建变量和强引用: //注意可选的类型声明! var john:人吗? var unit4A:公寓? john = Person(姓名:“ […]