我已經定義了一個init方法爲:對象 - 分配警告使用init方法
- (id)initWithX:(float)inX AndY:(float)inY
{
if (self = [super init])
{
[self setX:inX andY:inY];
}
return self;
}
當我用這個方法是這樣的:
MyObject* myObject = [[MyObject alloc] initWithX:0.0 AndY:0.0];
我得到警告說:「警告:從不同的Objective-C類型初始化「
但有趣的是,如果我在方法簽名中將」AndY:「更改爲」andY:「,則警告消失。
爲什麼會發生這種情況?當然,我的方法的命名不應該影響它的返回類型?
經過多一點調查,更改方法名稱使用小寫字母'和Y'沒有使警告消失。我清理了所有的目標,並重建並且警告沒有顯示。但它在重新編譯之後又回來了。奇。
另外,顯然,蘋果的編碼準則從使用「和」連接參數在和Y:(int)intY 「請勿使用」和「鏈接屬於接收器屬性的關鍵字」。 http://developer.apple.com/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html – 2009-07-16 22:33:33
非常好的一點!我已經忘記了這一點,但這是很好的建議。 – 2009-07-17 00:52:09