2011-01-31 4 views
0

TTPhotoプロトコルにさらに場所(場所など)を追加する必要はありますか?TTPhotoに属性を追加する

私は自分のプロトコルを作成することをお勧めしますが、それは私のビューコントローラでたくさんのものを変更する必要があります。これを達成するための簡単な方法はありますか?

答えて

0

フォーマルプロトコルは、主にコンパイル時の意図であり、意図をより明確にするのに役立ちます。彼らは比較的最近の発明であり、その前にすべてのプロトコルが非公式であった - クラスの文書の一部であったが、コードでは宣言されていなかった。特定のクラスが特定のセレクタに応答するかどうかを問い合わせるのと同じように、特定のクラスが特定のプロトコルに応答するかどうかを照会するために、Objective-Cランタイムメソッドのいくつかを使用できるという点でランタイム効果があります。実行時にオブジェクトを渡すと発生します。

プロトコルは通信を定義する単なる契約であり、動作を指定しません。したがって、継承の概念はありません。プロトコルに含まれるセレクタのランタイムリストはないので、このアイデアは特に役に立ちません。

ベストショットは、追加機能を含む追加のプロトコルを定義することです。新しいオブジェクトを作成して、両方のプロトコルを実装します。カテゴリメソッドを使用したい、またはアクセスしたくないクラスを拡張する。

新しいフィールドを処理するために追加のストレージが必要な場合は、サブクラス化するのが最も安全です。現時点では実際に実行時にインスタンス変数を追加することができますが、Objective-CランタイムへのCインタフェースにドロップダウンする必要があり、そのためにフープジャンプが必要になります。

関連する問題