我理解在NSDictionary中使用常量来防止输入错误(myName将自动完成vs @“myName”不会)。
我现在正在使用中等大小的词典,有几次,我错误地输入了关键名称,并且不得不花一些时间追踪我错过拼写单词的地方。
我想知道,你认为设置常量命名方案是否值得?
答案 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)
是的,这是值得的。 这样做的一致性就是你所说的:它可以减少错误并节省你的时间。