NS_ENUM& NS_OPTIONS:定位以前版本的iOS 6或OS X ML

时间:2015-03-12 19:11:43

标签: objective-c compilation ios6 macros c-preprocessor

我正在阅读NS_ENUM & NS_OPTIONS。作者说:

  

如果您想在定位以前版本的时使用任一宏   iOS或OS X,您可以简单地内联:

#ifndef NS_ENUM
#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
#endif

为什么你不能在低于iOS 6(< iOS 6)的操作系统上使用这两个宏?它们只是宏,因此独立于iOS版本,但与编译器(预处理器)功能相关。我在文档中找不到任何内容。

有任何提示吗?

1 个答案:

答案 0 :(得分:2)

我同意文章中的措辞有点令人困惑,因为它听起来这个功能与运行时有关。但你是对的,它不依赖于iOS版本;它只是一种语言功能。

我认为文章真正想说的是,如果您使用较旧版本的iOS SDK(例如Xcode 4.4)编译您的项目,那么这些宏将不会存在并且您将会需要手动定义它们才能使用它们。但是,如果您使用的是已经为您定义宏的最新Xcode,即使您定位的是旧版iOS,也可以使用这些宏。