gpt4 book ai didi

macos - 为什么 `NSAppKitVersionNumber10_10` 不包含在 OS X 10.10 Yosemite 的 `NSApplication.h` 中?

转载 作者:行者123 更新时间:2023-12-03 16:54:01 25 4
gpt4 key购买 nike

通常建议使用 NSAppKitVersionNumber 在运行时检查 Cocoa 框架提供的新功能:

https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/

One typical use of this is to floor() the value, and check against the values provided in NSApplication.h. For instance:

if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_8) {
/* On a 10.8.x or earlier system */
} else if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_9) {
/* On a 10.9 - 10.9.x system */
} else {
/* 10.10 or later system */
}

在 OS X 10.10 和 Xcode 6.2 中,NSApplication.h 包括:

/* The version of the AppKit framework */
APPKIT_EXTERN const double NSAppKitVersionNumber;

#define NSAppKitVersionNumber10_0 577
#define NSAppKitVersionNumber10_1 620
#define NSAppKitVersionNumber10_2 663
#define NSAppKitVersionNumber10_2_3 663.6
#define NSAppKitVersionNumber10_3 743
#define NSAppKitVersionNumber10_3_2 743.14
#define NSAppKitVersionNumber10_3_3 743.2
#define NSAppKitVersionNumber10_3_5 743.24
#define NSAppKitVersionNumber10_3_7 743.33
#define NSAppKitVersionNumber10_3_9 743.36
#define NSAppKitVersionNumber10_4 824
#define NSAppKitVersionNumber10_4_1 824.1
#define NSAppKitVersionNumber10_4_3 824.23
#define NSAppKitVersionNumber10_4_4 824.33
#define NSAppKitVersionNumber10_4_7 824.41
#define NSAppKitVersionNumber10_5 949
#define NSAppKitVersionNumber10_5_2 949.27
#define NSAppKitVersionNumber10_5_3 949.33
#define NSAppKitVersionNumber10_6 1038
#define NSAppKitVersionNumber10_7 1138
#define NSAppKitVersionNumber10_7_2 1138.23
#define NSAppKitVersionNumber10_7_3 1138.32
#define NSAppKitVersionNumber10_7_4 1138.47
#define NSAppKitVersionNumber10_8 1187
#define NSAppKitVersionNumber10_9 1265

值得注意的是,OS X 10.10 Yosemite 缺少 NSAppKitVersionNumber10_10

10_10 版本是否已被明确排除,原因是什么?

这些常量通常只在当前版本之后出现吗?

或者这种检查版本号的方法现在已经过时了吗?如果是的话,替代品是什么?

最佳答案

Do these constants typically only show up in the version after they are current?

是的。同样,10.9 SDK仅定义到NSAppKitVersionNumber10_8

您会注意到您引用的代码片段不包含对 10.10 的显式检查。这只是所有其他检查之后的隐式回退。

关于macos - 为什么 `NSAppKitVersionNumber10_10` 不包含在 OS X 10.10 Yosemite 的 `NSApplication.h` 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com