2010-12-12 16 views
1

は、任意のクラスを作成しながら、どのように我々は、クラスメソッドやインスタンスメソッドとしてマークする必要があるかどうかを決めるのですか?Objective-C:クラスとインスタンスのメソッド? Objective-Cで

私は2の違いを知っているが、私の質問には、任意の方法のために(+/-)マーキングを決定する方法ですか?

答えて

7

+-がインスタンスメソッドであり、クラスのメソッドを示しています。アプリケーションで必要なクラスまたはインスタンスのメソッドを作成します。 2つのアプリケーションとアプリケーションの違いを実際に知っていれば、どちらを使うべきかを理解する上で問題はありません。

私はあなたがそうここに小さなプライマーがだ、彼らはあなたのアプリケーションにどのように適用されるかの違いを知っていないと信じて:

  • あなたはすべてのインスタンスでグローバルにいくつかの行動にアクセスする必要があるときは、クラスメソッドを使用しますそのクラス。すなわち、[[self class] someSpecialThing]
  • あなたはファクトリメソッドを必要とするときにも、クラスメソッドを使用します。そして他のどこでも
  • 、あなたはインスタンスメソッドを使用します。
+0

良い答え、私はメッセージング 'self'のクラスは、通常、ファクトリメソッドのために予約されていると言うには少し迷っ最先端であると考えているのに。私の意見では、特定の型にバインドされた機能を持ち、特定のインスタンスを気にしないときはいつでも、クラスメソッドを使用する必要があります。 –

+0

申し訳ありませんが、私の部分では貧しい言葉遣い、私は良い形だったことを暗示するつもりはなかった、それらは2つの別々の考えでした。私は言葉を修正します。 – jer

関連する問題