我們有時會遇到,希望某個類的方法不能被它的繼承類所繼承。這在C++是很好實現,直接將該方法定義為private即可。但是在正規的Objective-C語法,你不能對一個類的方法定義為private,那麼如何實現這種功能呢?
上帝給你關上一道門,同時給你打開一扇窗。Objective-C同樣也是如此,當Objective-C不能將類定義為私有時,還提供了另外一種方法:類別,在現有類的基礎上添加新方法的方式。下面用代碼來具體實現私有方法。
假設現有的類為MyClass:
在類的頭文件代碼為:
@interface MyClass {
// 添加變量
}
- (void)PublicMethod;//公共方法,可以被繼承類繼承
@end
而在類的.m文件中,采用類別來實現私有方法,具體操作為:
@interface MyClass()//注意(),即定義一個空類別
- (void)PrivateMethod;//在類別中定義私有方法
@end
@implementation MyClass
- (void)PublicMethod {
// I共有方法實現代碼
}
- (void)PrivateMethod {
// 私有方法代碼
}
@end
至此,私有方法實現完成。