自作のProtocolを作成してデリゲート処理を行うことはよくあるだろう。
そのときデリゲートは以下のように弱参照にすべきケースが多い。
何故なら、こうしておかないと循環参照が発生してしまうことがあるからだ。
そのときデリゲートは以下のように弱参照にすべきケースが多い。
何故なら、こうしておかないと循環参照が発生してしまうことがあるからだ。
ただ、このソースのままだと以下のようなエラーが出てしまう。
どうしたものかと調べてみると、stackoverflowで答えが見つかった。
How can I make a weak protocol reference in 'pure' Swift (w/o @objc) - Stack Overflow
Protocolをクラスとして定義すれば良いとのこと。
実際に試してみた。
これでコンパイルエラーは無くなった。
'weak' cannot be applied to non-class type 'TestClassDelegate'クラスじゃないと弱参照は出来ないと言われても、Protocolをクラスに変えるわけにはいかない。
どうしたものかと調べてみると、stackoverflowで答えが見つかった。
How can I make a weak protocol reference in 'pure' Swift (w/o @objc) - Stack Overflow
Protocolをクラスとして定義すれば良いとのこと。
実際に試してみた。
これでコンパイルエラーは無くなった。
コメント