2012-05-03 63 views
2

不要緊,如果我在.h文件中定義一個函數用一個參數的名稱,例如...定義函數時,參數的名稱是否重要?

-(foo *) initWithId:(NSString *)id; 

然後在我的實現給參數不同的名稱,因爲它隱藏了一個類的屬性:

-(foo *) initWithID:(NSString *)idString; 

我知道,自動完成文件使用的.h作爲其自動完成填料「基礎」,雖然它並不適用於這種情況下,我更喜歡使用屬性名在我的功能保持不變儘可能符合我的編碼風格。理解getFoo和setFoo都適用於與 - (bar *)initWithFoo:(id)foo;相同的屬性'foo'會更有意義。

據我所知,編譯器沒有任何問題,但它似乎應該很重要。

+1

雖然調用你的參數'id'是合法的,假如'id'已經是Objective-C中的一個類型的話,我會非常小心的。 – mttrb

回答

5

Xcode中的LLVM分析器似乎並不關心一些東西,比如從newcopy開始的方法。

下面是一個示例的警告時,我的名字開始與new屬性:

「屬性的合成吸氣如下可可命名約定 回‘國有’對象」

(在@property有@synthesize創建了一個以new開始的getter方法)。

3

不,編譯器不關心。閱讀你的代碼的其他人可能會關心。

1

真正重要的唯一時間是如果你有一個具有相同名稱的實例變量名。

@synthesize something; 

- (void)methodForSomething:(id)something 
{ 

something = something; 

} 

這會引發錯誤。顯然解決方案是修改你的實例變量的命名。

@synthesize something = _something; 

除此之外,參數名稱不重要。

相關問題