2011-12-02 83 views

回答

1

類別和@private是兩回事。類別擴展了您可以將方法添加到類中的類,並且@private是其他類無法直接訪問您的屬性的位置,並且必須使用您的訪問器。如果您希望子類無法訪問的ivars,請在您的界面中使用@private。

@interface MyClass : NSObject 
{ 
@private 
int num; //private attribute where subclass can't access 
} 
1

首先是閱讀理解@private修改What does "@private" mean in Objective-C?

再回答你的問題。

一個匿名類別被稱爲class extension,這是我用來保持我的API清潔,並且不公開宣佈我的ivars。

e.g

// .h 
@interface MyClass : NSObject 

@end 

// .m 
@interface MyClass() 

@property (nonatomic, strong) NSDate *someDateImWorkingWith; 

@end 

@implementation MyClass 

@synthesize someDateImWorkingWith = _someDateImWorkingWith; 

@end 

因此,我有NSDate *someDateImWorkingWith到我的類中使用,但沒有一個導入我的頭,甚至會知道它的存在沒有做挖一點點。這對我來說效果很好,你的milage可能會有所不同。

相關問題