2012-12-13 85 views
0

我有一個數字api常量列表,我想在代碼中的一個位置收集,並且想知道如何做到這一點的最佳方法。這裏是我迄今爲止..在代碼中存儲和引用第三方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倉庫中的分支之間進行整體閱讀和合並。我希望在構建/編譯時具有的一個特性是,如果字符串不在字典中,那麼構建和/或編譯器錯誤會被標記以指示這一點。

我確信其他人已經遇到過這種情況,因爲有很多第三方庫,sdk和你在一個項目中有什麼難以跟蹤他們。對於那些願意分享什麼系統來提供幫助的人?

在我的情況下,這是一個iOS項目,但情況適用於任何類型的項目。

+0

NSDictionary不會成爲一個好的模型,你可以用更多的代碼創建一個真正的類。另外,當我看到一個宏,我畏縮不知道是什麼, – zaph

回答

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.

將由剛剛在自己的權利使他們常量來解決。

+0

是真的。不確定使用字典有什麼好處,而且使用常量可以解決構建/編譯時間需求。 –

相關問題