我有一个数字 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 存储库中的分支之间的合并更容易实现我的目的。我希望在构建/编译时拥有的一个功能是,如果字符串不在字典中,那么将标记构建和/或编译器错误以指示这一点。
我敢肯定其他人之前遇到过这种情况,因为有这么多第 3 方库、sdk 以及您在一个项目中有什么,很难跟踪所有这些。对于那些愿意分享您提出了哪些系统来帮助解决这个问题的人?
在我的例子中,这是一个 iOS 项目,但这种情况实际上适用于任何类型的项目。
最佳答案
你认为使用字典比仅仅让它们自己成为常量有什么优势?您的愿望:
我希望在构建/编译时拥有的一个功能是,如果字符串不在字典中,那么将标记构建和/或编译器错误以指示这一点。
只需将它们本身设为常量即可解决。
关于objective-c - 在代码中存储和引用第三方 API key 和常量列表的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13851060/