2013-12-16 38 views
-1

id是對象的類型;例如,類型可能是NSArray *或NSString *。 類可以是NSArray *或NSString *或其他對象。標識符ID和類別有什麼不同?

我可以使用他們喜歡跟着

- (void)wantWriteAction:(id)sender { 
} 

- (void)wantWriteAction:(Class)sender { 
} 

我想知道them.In之間的不同是什麼情況不能使用的ID?什麼情況下不能使用類?

+0

http://stackoverflow.com/questions/7256989/casting-sender-to-ibaction-as-id-or-specific-class – the1pawan

+0

id可以是任何東西,並且可以響應系統中的任何消息,但類可以響應特別是。 id是通用的 – the1pawan

回答

1

id表示任何類的一個實例。 Class代表任何類別 - 不是實例,而是類別本身。

因此id可能是NSStringNSArray的特定實例。你可以調用它 - 實例方法那些只顯示文檔的-,像-length-stringByAppendingFormat。如果idNSString那麼它的值可能是@"foo"

Class可能是NSString類或NSArray類。您可以調用其上的類方法 - 在文檔中顯示爲+的類方法,如+stringWithFormat。如果ClassNSString(注意,不是NSString,但NSString類),那麼它有沒有字符串值,因爲它不是一個字符串。這是一堂課。

相關問題