2010-06-04 81 views
3

我在框架目錄中的某些頭文件中看到這一點:協議在Objective-C中是可以繼承的嗎?

@interface NSCharacterSet : NSObject <NSCopying, NSMutableCopying, NSCoding> 

@end 

@interface NSMutableCharacterSet : NSCharacterSet <NSCopying, NSMutableCopying> 

@end 

我以爲協議是inheritable.If我是正確的那個,有沒有必要鍵入<NSCopying, NSMutableCopying>後再次「NSMutableCharacterSet : NSCharacterSet」。而NSMutableCharacterSet也符合NSCoding協議,對吧?

爲什麼蘋果再次打字?我錯了嗎?

回答

8

是的。子類也將採用相同的協議。

蘋果打字的原因是因爲NSMutableCharacterSet已被覆蓋-copyWithZone:-mutableCopyWithZone: