3
#define A7VERSION() ({[[[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."] objectAtIndex:0] intValue];})

#define IS_OS_7 A7VERSION()>=7

上記の宣言はうまくコンパイルされているようです。

しかし、それを .m ファイルに追加するとすぐに、「プリプロセッサ式の開始時に無効なトークン」という例外が発生します。どこが間違っているのか理解できない

@implementation AppViewController
#if IS_OS_7
….
#else
….  
#endif
@end
4

1 に答える 1

10

この問題は iOS 7 とは関係ありません。

#defineコンパイル時に解決できるものにはなりません。#ifdefは、条件がコンパイル時に決定できるものである場合にのみ機能します。アプリが実行されている環境に基づいて実行時の動作を変更するために使用することはできません。

于 2013-07-05T05:07:43.210 に答える