【问题标题】:How do I declare constants in Objective-C in a namespace?如何在命名空间中声明 Objective-C 中的常量?
【发布时间】:2012-12-06 15:47:14
【问题描述】:

在 Java 中我会去

class SettingKeys
{
    static String USERNAME = "username";
    static String PASSWORD = "password";
}

然后用它去

username = settings.get(SettingKeys.USERNAME);

我在 Objective-C 中做什么?

【问题讨论】:

    标签: objective-c constants


    【解决方案1】:

    Objective-C 没有命名空间。您可以在类方法中返回常量,但很少这样做;相反,您只需在全局上下文中声明常量,并可能在名称前加上前缀,这样就不会发生命名冲突。

    【讨论】:

      【解决方案2】:

      在 Objective-C 中的一般做法是使用 typedef'd enum:

      typedef enum
      {
          MyClassConstant1,
          MyClassConstant2,
          MyClassConstant3
      } MyClassConstant;
      
      @interface MyClass : NSObject
      {
          MyClassConstant _something;
      }
      
      @end
      

      当然这只适用于常量整数值;对于你通常做的字符串:

      extern NSString * const MyClassString1;
      

      ...等等

      【讨论】:

      • 所以我还不如去#define KEY @"blah"?
      • @RogerWernersson 取决于;使用一组固定的NSString 对象的一个​​优点是您可以使用== 而不是isEqualToString 进行比较,这可以提高性能...
      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 2010-10-27
      相关资源
      最近更新 更多