とObserverパターンIは、関数のみを使用して迅速でObserverパターンを実装しようとしている:これは印刷しスウィフト、閉鎖
var closures: [() -> Void] = []
class A: NSObject
{
static var c = 0
var i = 0
override init()
{
super.init()
self.i = A.c
A.c += 1
}
func foo()
{
print("Hi: \(i)")
print("\(A.c)")
}
} // class
var aa:A? = A()
closures.append(aa!.foo)
for item in closures
{
item()
}
aa = A()
for item in closures
{
item()
}
:
Hi: 0
1
Hi: 0
2
最初の質問を、それはインスタンス変数のように見えますi
は決して変更されません、あなたはその理由を知っていますか?
2番目の質問は、メモリがリークですか?私は配列の配列を持っているので、配列を空にしないでaa
が解放されますか?
3番目の質問は、関数を使用したObserveパターンの方が良いでしょうか? (私はプロトコルを使用したくない)
私は「なぜ」 '何であると思います。私はタイプを使用せずにObserverパターンを実装しようとしています。クラスAのようなオブジェクトは配列に関数を追加します。必要に応じて、配列の各関数が呼び出されます。私はプロトコルを使って同じことをすることができましたが、私は別のものを試してみたかったのです。 – AR89