0

我有一个数字 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 存储库中的分支之间的合并更容易。我希望在构建/编译时拥有的一个功能是,如果字典中没有字符串,则将标记构建和/或编译器错误以指示这一点。

我敢肯定,其他人之前遇到过这种情况,因为有这么多的 3rd 方库、sdk 以及你在项目中拥有的东西,很难跟踪它们。对于那些愿意分享你想出什么系统来帮助解决这个问题的人?

就我而言,这是针对 iOS 项目的,但这种情况确实适用于任何类型的项目。

4

1 回答 1

2

与仅将它们自己设为常量相比,使用字典有什么优势?你的愿望:

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.

只需使它们本身成为常数即可解决。

于 2012-12-13T00:27:58.257 回答