在之前的iOS版本中,我使用NSFoundationVersionNumber
来检测iOS版本:
#define IS_IOS10orHIGHER (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max)
#define IS_IOS9orHIGHER (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_8_3)
#define IS_IOS8orHIGHER (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_7_1)
#define IS_IOS7orHIGHER (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
#define IS_IOS6orHIGHER (floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_6_0)
...
现在我想为iOS 11做同样的事情,但我找不到正确的NSFoundationVersionNumber
。文档显示NSFoundationVersionNumber_iOS_9_x_Max
是最新的。
那么,如何检测使用的是iOS 11的正确NSFoundationVersionNumber
?
systemVersion
的浮点比较的那个答案,因为那样可能会导致微妙的错误。 - Jim Leaskif
语句中只有@available
这个条件吗?还是你通过&&
或||
与其他条件组合在一起了?后者会导致警告。不幸的是,可用性检查必须单独进行。 - Charles SrstkaNSProcessInfo
的operatingSystemVersion
属性:https://developer.apple.com/documentation/foundation/nsprocessinfo/1410906-operatingsystemversion?language=objc - Charles Srstka