2

这个问题大多比其他任何事情都好奇。但是我现在首先将所有私有方法放在我的@implementation中,这样我就可以避免在这些方法的.m文件中创建一个单独的类别。只要私人方法在任何其他方法被调用之前实现,一切都很好。我可以清楚地记得Xcode警告我,如果我试图在实现它之前调用一个非声明的方法......至少,我想我可以。现在我开始怀疑我的理智有点因为Xcode现在似乎非常高兴允许我调用任何未声明的方法,只要其实现位于@implementation内的任何位置,即使该调用在实现之前发生。私有方法执行

这是最近的变化,还是我构建了一些古老的'C'限制我的方法顺序?

Xcode现在的行为方式,似乎没有必要为私有方法创建任何类别。就我个人而言,我觉得这很不错。

编辑:我正在使用Xcode 4.3.1

+0

[Private Method Declaration Objective-C]的副本(http://stackoverflow.com/questions/9414410/private-method-declaration-objective-c) – 2012-03-10 18:56:49

回答

1

显然你是对的。 xcode 4.2.1发出警告,4.3.1不会。

@implementation MyClass 


- (void) callMyPrivateMethod { 
    [self myPrivateMethod]; //<--- xcode 4.2.1 issues a warning here. 
    return; 
} 

- (void) myPrivateMethod { 
    return; 
} 

@end 

(我知道有没有必要为“回归的,但我有点老了有这方面fasioned。)

但是,这两个版本将正确地构建它,它会银行经营,除非你犯了一个方法名称中的拼写错误。

+0

感谢您的确认。我很确定它在早期版本的Xcode中不存在,但很高兴有确认。这也是一个非常好的补充。 – 2012-03-10 19:37:04