【发布时间】:2012-06-03 21:24:18
【问题描述】:
如果我想针对所有 iOS 设备 4.3 或更高版本,我可以使用:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_3
另外,如果我想针对一般的 iOS 设备,我可以使用:
#if TARGET_OS_IPHONE
Mac OS X 有类似的东西吗?
【问题讨论】:
如果我想针对所有 iOS 设备 4.3 或更高版本,我可以使用:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_3
另外,如果我想针对一般的 iOS 设备,我可以使用:
#if TARGET_OS_IPHONE
Mac OS X 有类似的东西吗?
【问题讨论】:
NSAppKitVersionNumber 是你在 OS X 上的朋友。 10.5 及更高版本,您可以这样做:
#if NSAppKitVersionNumber >= NSAppKitVersionNumber10_5
// ...
#endif
编辑:刚刚看到在 OS X 上也有 __MAC_OS_X_VERSION_MAX_ALLOWED 和 __MAC_OS_X_VERSION_MIN_REQUIRED,它们可能会更好地工作,并且在不依赖 Cocoa 的 Availability.h 中可用。 p>
【讨论】:
NSAppKitVersionNumber 将不会被定义,对吧?通过这种方式,我可以通过检查是否已定义来判断我使用的是 Mac OS X?
NSAppKitVersionNumber 仅在 OS X 上定义(或者更好地说它在 Cocoa 中定义。如果您不使用 Cocoa,您可以恢复到 Gestalt 和弱链接(在 10.6.8 及更高版本上有效(公平!) )
/usr/include/AvailabilityInternal.h,它们以两个下划线开头。是的,可能的值与 iOS 类似:__MAC_10_0、__MAC_10_7 等(查看/usr/include/Availability.h