0

マクロに小さな問題があります。project-Prefix.pch ファイルで次のマクロを宣言しています。

#define IS_IOS7_AND_UP ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0)

次のコードを含むmacrofile.hがありますが、コンパイルすると「プリプロセッサ式の開始時にトークンが無効です」というエラーが発生しました

#if (IS_IOS7_AND_UP>0)  //error-> "Invalid token at start of a preprocessor expression"
#define CELL_CONTENT_WIDTH 320.0f
#else
#define CELL_CONTENT_WIDTH 300.0f
#endif

これについて何が問題なのか教えてください。実際には、これをマクロにして、多くのファイルを変更できないようにする必要があります。

4

1 に答える 1

4

あなたが言っていることを正確に行う方法はありません。CELL_CONTENT_WIDTH代わりに、次のように定義してみてください。

#define CELL_CONTENT_WIDTH (IS_IOS7_AND_UP ? 320.0 : 300.0)

これにより、既存のコードを変更せずに実行時にチェックが行われます。

于 2013-11-06T15:15:28.493 に答える