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 回答