我指的是来自developer.apple.com的swift 2.2中的ARC(参考: - link)
我有下面的代码,调用denit方法,但我仍然将我的引用3 var设置为nil,任何人都可以解释为什么要调用denit?
in person.swift class
class Person {
let name: String
init(name: String) {
self.name = name
print("\(name) is being initialized")
}
deinit {
print("\(name) is being deinitialized")
}
}
在我的视图控制器中
var reference1 : Person?
var reference2 : Person?
var reference3 : Person?
reference1 = Person(name:"John Apple")
reference2 = reference1
reference3 = reference1
reference1 = nil
reference2 = nil
输出: -
John Apple is being initialized
John Apple is being deinitialized
答案 0 :(得分:0)
我会猜测,因为reference3
是一个局部变量,而不是实例变量,所以当方法返回时,它会超出范围。
而且BTW那个人的名字是John Appleseed,而不是John Apple:)