Objective-C中的私有方法声明

时间:2011-10-07 14:11:51

标签: objective-c

我是否必须在

中的.m类文件中声明所有私有方法
@interface ClassName()
  //Privare Methods
@end

之前

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

我正在实施的每种方法&那么使用其他实例方法(在.h文件中声明的方法)?

X-Code 4不会为所有私人方法提供警告,但仅限于少数。例如,它警告我在手势处理函数内部调用的方法,但不在其他例程/方法中。我很困惑,因为声明所有非实例方法或只是声明我得到警告的那些。

2 个答案:

答案 0 :(得分:3)

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 :(得分:1)

不,您不必声明您实施的每个方法。当您调用的方法在.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 {
}