2009-08-31 57 views
3

在Ruby中,當引用類「String」的「downcase」方法時,我寫入String#downcase。在談論「新」類方法時,我寫了String.new。用於引用Objective-C中類的方法的「官方」語法?

Objective-C有類似的東西嗎?

+2

其實,規範的方法來指代「類方法」(請注意,是在Ruby中一個類的方法沒有這樣的東西,它只是對類對象的元類標準的實例方法)是'字符串:: new' 。當引用類實例時,消息發送符號僅用於示例中。所以,在'String#downcase'的文檔中可以有一個例子,在這個例子中你可以使用'str.downcase'。 – 2009-08-31 20:05:15

回答

12

給定一個類的聲明這樣

@interface MyClass (NSObject) 
{} 

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

通常的做法是指classMethod+[MyClass classMethod]或更緊湊+classMethod如果類是明確的。同樣,我將instanceMethod稱爲-[MyClass instanceMethod]-instanceMethod

+0

偉大的答案,我總是使用類名(** + **或** - **消除歧義的類和實例方法)和你提到的速記形式(對於同一類中的方法,或當類是清晰的)非常有用。另外,請記住,對於接受一個或多個參數的方法,請使用完整的選擇器名稱,包括冒號。例如,'+ [NSString stringWithFormat:]',' - [NSString initWithFormat:arguments:]'等等。 – 2009-08-31 20:35:34

+1

好的答案。在提及散文中的方法時,我總是使用'(+ | - )methodWithArgs:moreArgs:'方式來明確哪一個是有意的。 – johne 2009-09-01 00:34:08

-1

如果你指的是像一個方法:

+ (void)someClassMethod; 

階級的MyObject那麼你會這樣稱呼它:

[MyObject someClassMethod]; 
+0

是的,我知道如何在Obj-C中調用方法。我的意思是:你將如何以比「someClass類SomeClass的someMethod方法」更詳細的方式引用文檔或註釋中的方法。 – mrueg 2009-08-31 20:03:07

5

GDB使用+[MyClass foo]-[MyClass bar];