2010-12-28 12 views
0

可能性の重複:
What do the plus and minus signs mean in Objective C next to a method?の違いは何ですか - (NSMutableArrayの*)getContactsListと+(NSMutableArrayの*)getContactsList

私が持つメソッドの違いを知りたい - 記号は+ symbaolと一緒に。

例 - (NSMutableArray *)getContactsList; +(NSMutableArray *)getContactsList;

ありがとう Praveena。

+2

[メソッドの横にあるObjective Cではプラス記号とマイナス記号は何を意味しますか? ](http://stackoverflow.com/questions/2097294/what-do-the-plus-and-minus-signs-mean-in-objective-c-next-to-a-method) –

+0

1つはインスタンスメソッドであり、その他はクラスメソッドです – GhostRider

答えて

2

2つの方法の違いは次のとおりです。

" - "で始まるメソッドはインスタンスメソッドです。特定のクラスのオブジェクトを使用してそのメソッドを呼び出すことができます。

例:

A *a = [[A alloc] init]; 
array = [a getContactsList]; 

そして "+" で始まるメソッドは、クラスメソッドです。クラス名を使用してそのメソッドを呼び出すことができます。

例:

array = [A getContactsList]; 

主な違いです。

さらに、クラスメソッドでは、静的変数のみ、インスタンス変数を使用できます。

ありがとう、

サティヤ。

+1

クラスメソッドは静的またはグローバルを使用できます。私は "私的"と "普通"はインスタンス変数を意味すると仮定していますか?もしそうなら、はい、しかし少なくとも彼らの正当な名前によって彼らを呼んでください! – bbum

+0

ありがとう。Satya。 – praveena

-1

+を使用したメソッドは静的メソッドであり、オートレアーレースを使用して保持されたオブジェクトを返します。これはオブジェクトの所有者ではないことを意味します。

+0

Objective-Cには静的メソッドはありません。それはクラスメソッドを持っています。クラスメソッドは、自動解放されたオブジェクトを返すことは保証されません( '+ new'を参照)。 – bbum