Частные объявления методов в target-C - PullRequest
1 голос
/ 07 октября 2011

Должен ли я ОБЪЯВЛЯТЬ все частные методы в файле класса .m внутри

@interface ClassName()
  //Privare Methods
@end

до

@implementation ClassName
  // Implementation of Private & Instance methods
@end

для каждого метода, который я реализую и использую ДРУГИЕ, чем методы экземпляра (методы, объявленные в файле .h)?

X-Code 4 НЕ дает мне ПРЕДУПРЕЖДЕНИЕ для ВСЕХ частных методов, но ТОЛЬКО для немногих из них. Например, он предупреждает меня о методах, которые я вызываю внутри функций-обработчиков жестов, но не внутри других процедур / методов. Я запутался в том, что объявляю все неэкземплярные методы или просто объявляю те, о которых меня предупреждают.

Ответы [ 2 ]

3 голосов
/ 07 октября 2011

XCode не будет предупреждать о методах, которые появляются перед точкой вызова:

@implementation 

- (void) foo:(float)x;
{
    NSLog(@"%f", x); // prints 15.000000
}

- (void) bar;
{
    [self foo:15.0]; // no warning
    [self baz:15.0]; // warning
}

- (void) baz:(float)x;
{
    NSLog(@"%f", x); // prints 0.000000 instead of 15.0
}

@end

Настоятельно рекомендуется объявить методы, о которых вас предупреждают, приведенный выше код дает один пример, почему.

1 голос
/ 07 октября 2011

Нет, вам не нужно объявлять каждый реализуемый вами метод. Объявление необходимо, когда метод, который вы вызываете, определен после метода, который вызывает его в файле .m:

- (void) methodA {
     [self methodB]; //here you will get a warning if you don't define methodB it in a private class extention
}

- (void) methodB {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...