2009-08-31 2 views
3

Rubyでは、クラス "String"の "downcase"メソッドを参照するとき、String#downcaseを記述します。 "新しい"クラスのメソッドについては、String.newを記述します。Objective-Cのクラスのメソッドを参照するための「公式」の構文ですか?

Objective-Cに類似したものはありますか?

+2

実際には、「クラスメソッド」(クラスメソッドのようなことはありませんが、クラスオブジェクトのメタクラスの標準インスタンスメソッドです)を参照する正式な方法は 'String :: new'です。 。メッセージ送信表記法は、クラスインスタンスを参照するときの例でのみ使用されます。したがって、 'String#downcase'の文書の中には例があり、その例の中に' str.downcase'を使用します。 –

答えて

12

は、クラスがクリアされている場合+[MyClass classMethod]以上のコンパクト+classMethodとしてclassMethodを参照するのが一般的である。この

@interface MyClass (NSObject) 
{} 

+ (id)classMethod; 
- (id)instanceMethod; 
@end 

のようなクラス宣言を考えます。同様に、私はinstanceMethod-[MyClass instanceMethod]または-instanceMethodと呼んでいます。

+0

私はいつもクラス名(** + **または** - **はクラスとインスタンスメソッドを曖昧にします)とあなたが言及する省略形(同じクラスのメソッドの場合、またはクラスがクリアな場合)非常に便利です。さらに、1つまたは複数のパラメータを受け入れるメソッドの場合は、コロンを含む完全セレクタ名を使用することを覚えておいてください。たとえば、 '+ [NSString stringWithFormat:]'、 ' - [NSString initWithFormat:arguments:]'など。 –

+1

いい答えです。散文のメソッドを参照するとき、私は常に '(+ | - )methodWithArgs:moreArgs:'を使って、意図したものを明確にしました。 – johne

-1

あなたのような方法を参考にしている場合は、次のクラスMyObjectに上

+ (void)someClassMethod; 

あなたはこのようにそれを呼び出します。

[MyObject someClassMethod]; 
+0

はい、私はObj-Cでメソッドを呼び出す方法を知っています。つまり、ドキュメンテーションやコメントなどのメソッドを、「[クラス] SomeClassのメソッドsomeMethod」よりもあまり冗長な方法で参照するのはどういう意味ですか。 – mrueg

5

gdbが+[MyClass foo]-[MyClass bar]を使用しています。

関連する問題