Bir sınıfın bir kod parçası olduğunu buldum ve bu sınıf CustomViewController (UIViewController'ı devraldı) özelliğini hesapladı ve bu özelliğin alıcısında kendini depoladılar. O viewcontroller bu hiç de-inited edilecektir sunmak bu tarif etmek sıcak iyi yolu kodu ŞimdiHesaplanmış özelliklerdeki devri yerinde tutuyor mu?
class SomeClass: {
var alertViewController: UIViewController? {
if self.wasRequested {
return self.chatController
} else {
let vc = CutomVC(nibName: "SomeNibName", bundle: nil)
vc.alert = self
return vc
}
}
}
yoluyla mı? Bu korunma döngüsü mü?
kuvvetle başka yerde başvurulan değil varsayarak
bu yöntemin sonucunu kendiliğinden saklamıyor mu? aka, bu hesaplanan CustomVC'ye bir referans var mı, eğer bir koruma döngüsü olacağını düşünmüyorsa neden olur. ama muhtemelen – Fonix
'vc.alert' değilse güçlü bir başvuru olarak kalması gerekir 'vc.alert' zayıf bir başvuru yapmak için zarar olmaz. Bu yöntemin sonucu başka bir denetleyicide sunulduysa, vc.alert, kendiliğinden hiçbir yerde güçlü bir şekilde tutulmadığında sıfır olacaktır; bu, vc'nin kullanılmasından önce olabilir. Bu her şey garip bir tasarım deseni gibi görünüyor. –
Evet gerçekten garip :), ama ne olacağını merak ettim..Sağolduğumuzu düşünün – beretis