objective-c - 在代码中存储和引用第三方 API key 和常量列表的最佳方式?

标签 objective-c ios c xcode

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

相关文章:

c - 当我们用正常的内存分配替换/dev/mem 映射时,8 位内存访问的行为如何

c - 试图在 c 中复制字符串,第一个字母未被复制

iphone - 如何使 ios 设置包(PreferenceLoader)中的特定单元格变灰?

ios - 从 Rubymotion 调用 NSSetUncaughtExceptionHandler

iphone - 想在 iPhone 上显示 3D 模型 : how to get started?

ios - 在 iOS 应用程序中创建包标识符的基本规则是什么

objective-c - 在这种情况下如何实现 UINavigationController?

iphone - UITabBar Controller 的滑动动画,在 objective-c 中水平?

objective-c - iOS:持续更新路径的 CGContextStrokePath

C-K&R 表达式 : evaluate a reverse Polish expression from the command line