2

这个问题主要是好奇心而不是其他任何东西。但我目前将所有私有方法放在我的首位,@implementation这样我就可以避免在我的 .m 文件中为这些方法创建一个单独的类别。只要私有方法在任何其他方法调用它之前实现,一切都很好。如果我在实现之前尝试调用未声明的方法,我可以清楚地记得 Xcode 警告我......至少,我认为我可以。现在我开始有点怀疑我的理智了,因为 Xcode 现在似乎非常乐意允许我调用任何未声明的方法,只要它的实现位于@implementation.

这是最近的变化还是我一直在根据一些古老的“C”限制来构建我的方法顺序?

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

编辑:我正在使用 Xcode 4.3.1

4

1 回答 1

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

(我知道不需要'return',但我对这方面有点老套了。)

但是,两个版本都可以正确构建它并且它会运行,除非您在方法名称中输入错误。

于 2012-03-10T18:51:52.170 回答