アイデアは、マクロを使用していくつかの固定CGPoint値を設定し、それらをコードで柔軟に(ランダムまたは提供された整数値で)読み取ることです
次のようないくつかの CGPoints 値を定義するヘッダー ファイルがあります。
#define kSpawnPoint1 {550,20}
#define kSpawnPoint2 {550,80}
#define kSpawnPoint3 {200,175}
コードで 1 から 3 までのランダムな整数を生成しており、整数値に従ってマクロで CGPoint 値を読み取る予定です。しかし、それを行う方法がわかりません。プリプロセッサに関する他のチュートリアルを学習した後、次のようにコードを記述します。
#define kSpawnPoint1 {550,20}
#define kSpawnPoint2 {550,80}
#define kSpawnPoint3 {200,175}
#define kSpawnPoint(x) kSpawnPoint##x
m ファイルで:
int tempInt = 1;
CGPoint tempSpawnPoint = kSpawnPoint(temInt);
ただし、機能しません。(警告: 宣言されていない識別子 'kSpawnPointspawnPoint') どうすればこれを正しく行うことができますか? 複数の CGPoint を事前に定義するのは正しい方法ですか? 将来のマルチスクリーン解像度のサポートはマクロでも実装しやすくなり、kSpawnPoints は異なるスクリーン解像度で同じにならないことを考慮して、これを実現するにはプリプロセッサを使用する必要があると思います。