0

コード内の 1 つの場所に収集したい数値 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 リポジトリのブランチ間のマージが簡単になります。私がビルド/コンパイル時に持っていたい機能の 1 つは、文字列がディクショナリにない場合、これを示すためにビルドおよび/またはコンパイラ エラーにフラグが立てられることです。

非常に多くのサードパーティのライブラリ、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 に答える