私はマクロの落とし穴を認識しており、本当に必要なものが関数である場合はマクロを避けます。
ただし、「マジック」ナンバー、ファイル名、フォント名などを保存するのに役立つと思います。次のようなもの:
ProjectHeader.h
#ifndef __PROJECT_HEADER__
#define __PROJECT_HEADER__
#define kXMLFileName "scoresAndSettings.xml"
#define AUDIO_DATA_TYPE_FORMAT SInt16
#define NUM_AUDIO_BUFFERS 3
#define AUDIO_SAMPLE_RATE 44100.
#define NUM_AUDIO_CHANNELS 2
#define kGameFont @"Helvetica-Bold"
#define kGameFontSizeNormal 18
#define kGameFontSizeSmall 16
#define kGameFontSizeTiny 11
これらにより、(a) UI の仕様を変更できる 1 か所に保存し、変更がコード全体に反映されることを確認し、(b) コード内での機能を説明する名前をそれらに付け、(c) コードのオートコンプリートを使用して、私が実際に正しい用語を入力したことを知っています。
私はこれがひどいやり方ではないとかなり確信していますが、誰かがそう思っているかどうか、もしそうならもっとうまくやるにはどうすればよいか知りたいです。
これらはおそらく少し危険ですが、それでも非常に役立つと思います。
#define __COPY_PROTECTION__
#define __SHOW_FPS__ NO
#define __SKIP_LAUNCH_SCREEN__ 0
#define __START_IN_GAMEPLAY__ 1
#define __START_IN_PREFS__ 0
#define __START_IN_WIN_SCENE__ 0
#define __AUTO_WIN_TESTING__ 0
(さまざまな点で、コードでは:
AppDelegate.h
if (__START_IN_GAMEPLAY__) {
[self show:MyGameplay];
return;
}
[self show:MainScreen];
)。#define
これにより、ファイル内のマクロ dのみを操作することで、作業中のプロジェクトのどの部分でもすぐにテストに取りかかることがProjectHeader.h
できます。
これでいいですか?悪い?次回は何か良い方法はないでしょうか?