Şu anda Apple Documentation ürününü takip ediyorum. reference1
sonraARC (Otomatik Referans Sayma) İşlemi
class Person {
let name: String
init(name: String) {
self.name = name
println("\(name) is being initialized")
}
deinit {
println("\(name) is being deinitialized")
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var reference1: Person?
var reference2: Person?
var reference3: Person?
reference1 = Person(name: "John Appleseed")
// prints "John Appleseed is being initialized
reference2 = reference1
reference3 = reference1
reference1 = nil
reference2 = nil
}
}
nil
eşittir ARC reference3 = nil
sonra örneği ve baskılar "John Appleseed is being deinitialized"
olması gerekmiyor kaldırır kaldırır,: İşte benim soru nedir?
@JakubVano i viewDidLoad Bu kodu() yöntemi çalıştırıyorum fazla bilgi almak için. Ancak, referans3 nil değildir, derleyici güçlü referansın varlığını bile geçersiz kılar. – ridvankucuk
Bu ekran görüntüsü, netlik değil, karmaşa ekledi. – nhgrif
"Sınırsızlık" ın gerçekleştiği * kesin * anı nasıl belirliyorsunuz? Yöntemin geri döndüğü anda çağrılmayı beklerim (ve kesinlikle bir süre sonra). Bir çeşit optimizasyon nedeniyle daha erken çağrılabilir, ancak yöntem geri döndükten sonra kesinlikle takılmayacaktır. – nhgrif