クラスがあり、クラスがあり、そのクラスにはCustomViewController(UIViewControllerを継承しています)のプロパティがあり、このプロパティのゲッターにはselfが格納されています。これを説明するのに最適な方法はコード経由です計算されたプロパティで保持サイクルが可能か?
class SomeClass: {
var alertViewController: UIViewController? {
if self.wasRequested {
return self.chatController
} else {
let vc = CutomVC(nibName: "SomeNibName", bundle: nil)
vc.alert = self
return vc
}
}
}
これで、このビューコントローラを提示するとこれは削除されますか?これは維持サイクルですか? vc
変数の割り当てが解除されるたびに
'self'はそのメソッドの結果をまったく保存しませんか?別名、その計算されたCustomVCへの参照を持っています、もしそれが保持サイクルとは思わないのであれば。おそらく 'vc.alert'を弱い参照にするのは痛いでしょう。 – Fonix
' vc.alert'はおそらく強力な参照として残すべきです。このメソッドの結果が別のビューコントローラで表示された場合、 'vc.alert'は' self'がそれ以外の場所に強く保持されていないときはゼロになります。この全体は、奇妙なデザインパターンのように思えます。 –
はい、それは実際には変です:)しかし、私は何が起こるか気になりました。ありがとうございました – beretis