我有一个数字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/

10-10 21:04