2012-06-03 54 views
2

所以我注意到,在我的新Xcode項目中,默認情況下,我的.m文件中有一個類用於我的類。例如,我將在.m文件有這樣的:擴展/類別代替接口

@interface ViewController() 

@end 

@implementation 

    //Some code  

@end 

我想知道是不是還好我的聲明變量和函數在.m文件的類別,或者我應該做的。 h文件像以前一樣。基本上,什麼是類別方面的最佳做法。

順便說一下,我的問題是與下面的鏈接有關,但該鏈接並沒有完全回答我的問題。

回答

6

這不是一個類別,它是一個class extension(注意空括號)。您可以將私有實現詳細信息(包括私有ivars)保留在擴展中,以將.h文件中的聲明限制爲您的類的接口。請注意,您只能在擴展中添加ivars,而不能添加到類別中。

這種方法的一個非常重要的結果是,如果您需要需要額外頭文件才能實現的類型的ivars,則可以避免在頭文件中包含該頭文件,從而隱藏類的用戶的實現依賴關係。