【问题标题】:NS_ENUM & NS_OPTIONS: targeting a previous version of iOS 6 or OS X MLNS_ENUM 和 NS_OPTIONS:针对 iOS 6 或 OS X ML 的早期版本
【发布时间】:2015-05-15 02:45:37
【问题描述】:
我正在阅读有关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 (
对此有什么提示吗?
【问题讨论】:
标签:
objective-c
compilation
ios6
macros
c-preprocessor
【解决方案1】:
我同意文章中的措辞有点令人困惑,因为它听起来这个功能是依赖于运行时的。但你是对的,它不依赖于 iOS 版本;这只是一个语言功能。
我认为这篇文章真正想说的是,如果您使用旧版本的 iOS SDK(例如 Xcode 4.4)编译项目,那么这些宏将不存在,您需要手动定义他们使用它们。但是,如果您使用的是最新的 Xcode,其中已经为您定义了宏,即使您针对的是旧版本的 iOS,您也可以使用这些宏。