Objective-C常量是否应该由实现块包装?

时间:2014-05-12 19:07:14

标签: ios objective-c cocoa-touch

我有一个iOS应用程序,我正在写作。我已离开#define以创建我的常量值。关于这些样式声明的使用,我有几个问题:NSString *const segueToMainMenu

  1. 如果我在内部使用这些内容,请将它们放在.m文件中。但是,我应该将它们放在@implementation区块周围还是外面?或者它是否重要?我在内心思考,因为它们是针对实施而非全球性的,但我不确定。任何细节都表示赞赏。

  2. 如果我使用extern关键字创建更全局的范围,并且我使用常量文件对(Constants.h / Constants.m),我是否需要放置@interface部分中的那些,然后在@implementation部分定义它们?与仅使用Constants.h文件并将其包含在其他标头中的旧方法相比,有什么好处?为什么我现在需要两个文件?

  3. 标准做法仍然是使用" k"来命名常量。前缀(例如kAnimationDuration)或我现在应该做MainMenuViewControllerAnimationDuration之类的事情吗?我想象是的,如果是的话,对于1号(即非外部)的常数,我如何命名它们是否重要?换句话说,那些在我的实现之外是可见的吗?

  4. 非常感谢澄清。

1 个答案:

答案 0 :(得分:5)

无论是将它们放在实现块中还是没有 - 只有方法是类实现的一部分,因此常量的范围不会改变。

k前缀现在有点过时了。通常的方法是将常量命名为<prefix><name>,例如“MDSomeConstant”。