я метод инициализации определяется как:Obj-C Назначение Предупреждение При инициализации метода
- (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», чтобы предупреждение не исчезло. Я очистил все цели и перестроил, и предупреждение не показывалось. Но он вернулся после очередной перекомпиляции. Странный.
Кроме того, руководство Apple по кодированию с использованием «и» для подключения аргументов как в andY: (int) intY «Не использовать» и «связывать ключевые слова, являющиеся атрибутами получателя». http://developer.apple.com/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html –
Отличный момент! Я забыл об этом, но это отличный совет. –
Это было первое, что я проверил, но это не проблема. Декларация в интерфейсе идеально соответствует определению в реализации. Подпись метода, используемая в интерфейсе: - (id) initWithX: (float) x AndY: (float) y; – Jasarien