2012-05-06 14 views
-1

可能性の重複:
What do the plus and minus signs mean in Objective C next to a method?メソッドの+実装とは何ですか?

私はObjective Cのプログラミングを開始しているので、私はこのような方法を実施しています

-(void)doSomething 

は最近、私はこの中を見てソースコードの一部:

+(void)doSomething 

+と - の違いは何ですか?+は何ですか?

+0

インスタンスメソッドは、 - +で始まるクラスメソッド+ –

答えて

4

+で始まるメソッドは、クラスメソッドです。つまり、実際のオブジェクト(クラスのインスタンス)ではなく、クラス自体で呼び出されます。

+0

だから、オブジェクトではなくクラス自体で呼び出す場合の違いは何ですか? – CoreCode

+1

@CoreCodeクラスのインスタンスメソッドを呼び出すことはできません。これらのメソッドを使用するには、そのクラスのインスタンスが必要です。 –

+0

インスタンスメソッドはオブジェクトに対して呼び出されます。つまり、2つのインスタンスのデータ構造の値が異なる場合、同じクラスの各インスタンスに対して異なる動作をすることができます。しかし、クラスメソッドは、ある特定のクラスに対して呼び出されたときに、常に同じ種類のもの(与えられた同じ引数に対して、そしてそのメソッドに関連する静的変数が変更されていない場合)を行います。 –

0

戻り値の前に "+"が付いたメソッドは、そのような静的メソッドが存在することを示します(そのクラスのオブジェクトのインスタンス化なしで存在します)。 " - "の付いたメソッドは、個々のオブジェクトに関連しています。

+0

一般的にObjective Cのプログラマは、これらのクラスを "クラス"という名前で呼び出すことができます(つまり、クラスはisa(またはメタクラス)で始まります)クラスメソッドは、Javaのように "静的メソッド"ではありません。 – echristopherson

+0

ええ、知っていますが、私は同様の方法で言います。実際には、クラスメソッドはC#、java、C++などの静的メソッドと同じです。 ;-) – innuendoreplay

関連する問題