Swift3。私はちょうどUICollectionViewDelegate
がどのように弱いプロパティとして宣言できるのだろうと思っています。スイフト。 UIKitのデリゲートパターンのプロトコル。 NSObjectProtocol
迅速な「ヘッダー」をチェックすると、から継承され、次にNSObjectProtocol
から継承され、class
-onlyプロトコルとしてマークされていないことがわかります。
weak
デリゲートパターンとしてデリゲートパターンを使用するために私自身のプロトコルを作成しようとすると、コンパイル時エラー'weak' may only be applied to class and class-bound protocol types
が発生します。
私はコンパイラがclass
を使用するように強制する理由を理解していますが、どのようにしてUICollectionViewDelegate
がこの問題を解決できるか疑問に思っています。私はclass
が構文的な砂糖のようなものだと思いますが、あなたが私を説明できるかどうかは分かります。
注:値型と参照型の両方で採用できるプロトコルが本当に必要な状況に対処するパターンがありますが、メモリの観点からも(簡単には)weak
の参照で管理されているという状況があります。
少し不明な点がありましたら申し訳ありません。