【问题标题】:How do I target a specific Mac OS X version?如何定位特定的 Mac OS X 版本?
【发布时间】: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 有类似的东西吗?

【问题讨论】:

    标签: c macos version


    【解决方案1】:

    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>

    【讨论】:

    • 很好,如果我不在 Mac OS X 上(例如,如果我在 iOS 上),那么 NSAppKitVersionNumber 将不会被定义,对吧?通过这种方式,我可以通过检查是否已定义来判断我使用的是 Mac OS X?
    • @Radu 是的。 NSAppKitVersionNumber 仅在 OS X 上定义(或者更好地说它在 Cocoa 中定义。如果您不使用 Cocoa,您可以恢复到 Gestalt 和弱链接(在 10.6.8 及更高版本上有效(公平!) )
    • @Radu 查看/usr/include/AvailabilityInternal.h,它们以两个下划线开头。是的,可能的值与 iOS 类似:__MAC_10_0__MAC_10_7 等(查看/usr/include/Availability.h
    猜你喜欢
    • 2012-03-17
    • 2019-08-05
    • 2023-03-22
    • 2021-08-22
    • 2010-12-07
    • 2012-03-17
    • 1970-01-01
    • 2015-08-14
    • 2015-03-20
    相关资源
    最近更新 更多