1

最好从一个示例开始:在 OS X 中,Foundation/NSString.h 中定义了以下枚举常量:

    NSCaseInsensitiveSearch = 1,
    NSLiteralSearch = 2,
    NSRegularExpressionSearch NS_ENUM_AVAILABLE(10_7, 3_2) = 1024

问题:

  • 在编译时,编译器是否简单地将 NSRegularExpressionSearch 替换为其常量值(1024)?
  • 或者,是否在运行时找到了常量值,如果是,那么在 10.7 之前的版本上运行时常量的值是多少?
  • 在使用枚举常量之前,是否建议在运行时有条件地检查程序正在运行的环境?
  • NSRegularExpressionSearch即使将在 10.7 之前的运行时运行,放入我的代码是否总是安全的?(安全是指常量的存在不会导致崩溃或异常;显然,当我使用旧 API 无法识别的常量值时,我必须考虑程序的行为。)
4

0 回答 0