使用NSDictionary时是否使用常量?

时间:2012-02-10 17:24:51

标签: objective-c ios

我理解在NSDictionary中使用常量来防止输入错误(myName将自动完成vs @“myName”不会)。

我现在正在使用中等大小的词典,有几次,我错误地输入了关键名称,并且不得不花一些时间追踪我错过拼写单词的地方。

我想知道,你认为设置常量命名方案是否值得?

3 个答案:

答案 0 :(得分:21)

是的,但是我建议为你的字符串定义正确的字符串常量而不是#defines,因为字符串常量是类型安全的,每个引用都使用相同的实际字符串对象,这提高了使用isEqualToString:的性能比较它们。

要定义私有字符串常量,可以将其放在.m文件中:

static NSString *const MyConstant = @"MyConstant";

要将其公开,您可以将其放入.h文件中,也可以将其放在.h中来拆分定义:

extern NSString *const MyConstant;

这在您的.m文件中:

NSString *const MyConstant = @"MyConstant";

答案 1 :(得分:4)

我通常创建一个GlobalDefinitions.h文件并放置我可以在代码中使用的宏而不是魔术字符串。

.h文件

#define PERSON_NAME @"Person_name"
#define PERSON_BDAY @"Person_bday"

通过包含.h文件,您现在可以访问像这样的值

[dictionary objectForKey:PERSON_NAME];

答案 2 :(得分:3)

是的,这是值得的。 这样做的一致性就是你所说的:它可以减少错误并节省你的时间。