私はこれをやっています
if ([resourceCompletionReward objectAtIndex:experienceD] != 0) {
しかし、Xcode は私にエラーを与えています:
期待される表現
私は次のように定義experienceD
しました
#define experienceD 0;
私は何を間違っていますか?
私はこれをやっています
if ([resourceCompletionReward objectAtIndex:experienceD] != 0) {
しかし、Xcode は私にエラーを与えています:
期待される表現
私は次のように定義experienceD
しました
#define experienceD 0;
私は何を間違っていますか?
セミコロンがあってはいけません。
#define experienceD 0
うまくコンパイルされます。
また、このように UPPER_CASE_NOTATION を使用して定数に名前を付けることをお勧めします。
完全を期すために、Appleが提案することを追加します(Cocoaのコーディングガイドラインから)
通常、#define プリプロセッサ コマンドを使用して定数を作成しないでください。整数定数の場合は列挙型を使用し、浮動小数点定数の場合は const 修飾子を使用します
そしてまた
定数が他の定数と無関係な場合は、const を使用して整数定数を作成できます。それ以外の場合は、列挙を使用します
したがって、特定のケースでは、定数を次のように定義することをお勧めします
static const int ExperienceD = 0;
#define
定数の定義には使用しないでください。それ#define
はテキストの置換だけなので、あなたの場合、コンパイラは
if ([resourceCompletionReward objectAtIndex:0;] != 0) {
;
そして、あるべきではない場所について不平を言います。
定数を計算したい場合、これは特に面倒です。
#define CONSTANT 1 + 2
int y = 2 * CONSTANT;
コンパイラは単純なテキスト置換を行うので、
int y = 2 * 1 + 2;
これは実際には期待値ではありません。これを回避するには、各 #defined 定数を括弧で囲むことを忘れないでください。
定数を定義するより良い方法は、const
変数を使用することです。
static const int experienceD = 0;
連続した整数値で多くの定数を定義する場合は、列挙型も使用できます。
enum {
experienceD = 0;
};