2
假設我想讓一個類的私有方法僅對該類的實現可見,以便該類的接口只公開需要公開的內容。在Xcode的一些最新版本中,我可以簡單地通過忽略頭中的方法聲明來完成此操作。然而,一個好的書顯示,我也應申報在實現文件的類別,並在其中聲明方法,像這樣:我是否必須爲類的所有私有方法聲明一個類別?
// [in MyClass.m]
#import "MyClass.h"
// category declaration - is it really required?
// edit: it's a class extension declaration, I know, but it doesn't change much
@interface MyClass()
- (void)myPrivateMethod;
@end
@implementation MyClass
- (void)myPrivateMethod
{
// do something
}
// all methods here can call myPrivateMethod
@end
事實上它並編譯和工作。此外,它沒有類別/擴展聲明部分編譯和工作正常。這引發了一個自然的問題:
如果我有一堆私有方法,是否需要將它們全部聲明爲一個類?最佳做法是什麼?
我知道這是一個擴展,只是在我的腦海裏調用了_nameless category_。戒掉這個習慣.. – 2012-07-23 15:16:48
LOL術語*範疇*由於某種原因從來沒有讓我覺得過於具有描述性;這就是爲什麼我一直在考慮類別爲「命名擴展」:) – dasblinkenlight 2012-07-23 15:24:39
我建議打開「不允許沒有事先聲明的方法實現」,並強制自己使用擴展來聲明所有私有方法。使其更容易快速提醒您自己的實施細節。 – bbum 2012-07-23 15:25:56