我有一个数字api常量列表,我想在代码的一个位置中收集这些常量,并且想知道这样做的最佳方法。这是我到目前为止所拥有的..
具有所有常量的静态数组...
static NSDictionary* kApiConstants =
[NSDictionary dictionaryWithObjectsAndKeys:
@"crittercism-app-id", @"myAppId",
@"crittercism-key", @"myAppKey",
@"crittercism-secret", @"mySecretKey",
@"content-server-url-dev", @"http://my-dev-url/",
@"content-server-url-stg", @"http://my-staging-url",
@"content-server-url-pro", @"http://my-production-url",
nil];
然后,我有了一个宏,可以快速检索数组中的项目...
#define MYAPIKEY(x) [kApiConstants objectForKey:x]
我喜欢这个设置。它使代码阅读器更易于整体阅读,并且使我更容易在git repo中的分支之间合并。我希望在构建/编译时具有的一个功能是,如果字典中没有字符串,则将标记一个构建和/或编译器错误以表明这一点。
我敢肯定,在拥有如此多的第三方库,sdk以及其他项目中的其他成员之前,其他人已经遇到了这种情况,很难跟踪它们。对于那些愿意分享的系统,您想出什么系统来帮助您?
以我为例,这是一个iOS项目,但这种情况实际上适用于任何类型的项目。
最佳答案
与仅使它们自己成为常量相比,使用字典有何优势?你的愿望:One feature I would love to have at build/compile time is if a string is not in the dictionary then a build and/or compiler error would get flagged to indicate this.
仅通过使它们本身成为常数即可解决。
关于objective-c - 在代码中存储和引用第三方API key 和常量列表的最佳方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13851060/