【发布时间】:2017-10-04 22:07:39
【问题描述】:
假设我有一堂课Animal
class Animal: NSObject {
var name: String = ""
var weight: Double = 0
}
在我的视图控制器 #1 中,我有一个由这些对象组成的数组:
class ViewController1: UIViewController {
var animals: [Animal] = [ .... ]
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let v = segue.destination as? ViewController2 {
v.mammals = self.animals.filter(...) // Are my objects duplicated?
}
}
}
class ViewController2: UIViewController {
var mammals: [Animal] = [ .... ]
}
当我从 VC1 过滤它们并将它们的子集传递给 VC2 时,我的 Animal 对象是否重复?当我从 VC2 返回到 VC1(即弹出导航堆栈)时,mammals 中的对象是否已释放,释放内存?
编辑:这会创建任何类型的保留周期吗??
【问题讨论】:
标签: ios swift memory-management uiviewcontroller retain-cycle