【问题标题】:Private Method Implementation私有方法实现
【发布时间】:2012-03-27 18:21:58
【问题描述】:

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

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

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

编辑:我使用的是 Xcode 4.3.1

【问题讨论】:

标签: objective-c implementation private-methods objective-c-category


【解决方案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's,但我对这方面有点老套了。)

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

【讨论】:

  • 感谢您的确认。我很确定它在早期的 Xcode 版本中不存在,但很高兴得到确认。这也是一个非常好的补充。
猜你喜欢
  • 2015-10-27
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
相关资源
最近更新 更多