在Ruby中,當引用類「String」的「downcase」方法時,我寫入String#downcase。在談論「新」類方法時,我寫了String.new。用於引用Objective-C中類的方法的「官方」語法?
Objective-C有類似的東西嗎?
在Ruby中,當引用類「String」的「downcase」方法時,我寫入String#downcase。在談論「新」類方法時,我寫了String.new。用於引用Objective-C中類的方法的「官方」語法?
Objective-C有類似的東西嗎?
給定一個類的聲明這樣
@interface MyClass (NSObject)
{}
+ (id)classMethod;
- (id)instanceMethod;
@end
通常的做法是指classMethod
爲+[MyClass classMethod]
或更緊湊+classMethod
如果類是明確的。同樣,我將instanceMethod
稱爲-[MyClass instanceMethod]
或-instanceMethod
。
偉大的答案,我總是使用類名(** + **或** - **消除歧義的類和實例方法)和你提到的速記形式(對於同一類中的方法,或當類是清晰的)非常有用。另外,請記住,對於接受一個或多個參數的方法,請使用完整的選擇器名稱,包括冒號。例如,'+ [NSString stringWithFormat:]',' - [NSString initWithFormat:arguments:]'等等。 – 2009-08-31 20:35:34
好的答案。在提及散文中的方法時,我總是使用'(+ | - )methodWithArgs:moreArgs:'方式來明確哪一個是有意的。 – johne 2009-09-01 00:34:08
如果你指的是像一個方法:
+ (void)someClassMethod;
階級的MyObject那麼你會這樣稱呼它:
[MyObject someClassMethod];
是的,我知道如何在Obj-C中調用方法。我的意思是:你將如何以比「someClass類SomeClass的someMethod方法」更詳細的方式引用文檔或註釋中的方法。 – mrueg 2009-08-31 20:03:07
GDB使用+[MyClass foo]
和-[MyClass bar]
;
其實,規範的方法來指代「類方法」(請注意,是在Ruby中一個類的方法沒有這樣的東西,它只是對類對象的元類標準的實例方法)是'字符串:: new' 。當引用類實例時,消息發送符號僅用於示例中。所以,在'String#downcase'的文檔中可以有一個例子,在這個例子中你可以使用'str.downcase'。 – 2009-08-31 20:05:15