【发布时间】:2019-04-05 13:25:20
【问题描述】:
我在快速“A”和“B”中有两个视图控制器。让我在 A 中有一些变量。所以在初始化之后,它存储在内存区域中。然后发生了什么,当我移动到 B 视图控制器时。内存被释放还是还在内存空间中?
【问题讨论】:
-
when i moved to B view controller— 究竟如何?不同的转换可能会以不同的方式工作。另外,不是swift memory management,而是UIKit架构问题。 -
不确定移到 B 是什么意思? ..您的意思是从 A 向 B ViewController 呈现?
-
Swift 像 Objective-C 一样工作,具有引用计数。每个强引用都会增加计数。弱引用没有。如果 A 和 B 都具有强引用,则不会释放内存。如果只有 A 视图控制器有引用,并且 A 视图控制器被释放,则内存被释放。
-
这个问题很不清楚。内存可以是静态的、堆栈的或堆的。根据变量的类型(全局、实例、本地)和存储到其中的值的类型(字符串文字、值类型、引用类型),这可能会有不同的答案。
标签: ios swift memory-management