2011-09-26 73 views
1

我偶然發現了兩個經典編程問題之一。我正在編寫一個Cocoa框架,它基本上是最常用的Foundation類中的(大部分)有用方法的集合。我的問題是我如何在這些類的類別中爲這些額外的方法命名?我應該使用前綴還是無前綴命名約定(例如- (void)doSomething vs - (void)myDoSomething)?Cocoa中命名類別方法的最佳做法

使用前綴命名類,協議,函數,常量和 的typedef結構時:

我閱讀可可文檔時變得不確定。命名方法時不要使用前綴;方法 存在於由定義它們的類所創建的名稱空間中。此外, 不使用前綴在週五q &一系列命名的結構

領域,看着邁克的代碼示例(在MARefCounting例如方法名稱有building reference count文章前綴)。

回答

2

我不認爲你引用的文檔考慮了你不擁有的類別的類別。這只是想說,如果你定義了MyClass,你不需要命名你的方法my_doThis,因爲它們沒有什麼可以碰撞。

在這種情況下,使用前綴可能是最安全的。如果您忘記了前綴,並且Apple在未來版本中最終添加了相同的方法,那麼您的類別實現將會覆蓋Apple,這可能會導致意外的行爲。

更糟糕的是,有時您可能會更換內部定義的方法(它們並不總是以_開頭),這可能會導致框架內部出現不一致,從而使問題更難調試。