Swift 枚举的可用性是否重要?
Does availability matter for Swift enums?
Swift要求我在使用CBManagerState
时添加一个@available
注解,在iOS10中添加的枚举。CBManagerState
只是一个替换 CBCentralManagerState
和 CBPeripheralManagerState
,并且在 C-land 使用新的替换很好,因为枚举只是整数。
如果我想支持 iOS 9,这在 Swift 2.3 中是否也安全,还是我应该坚持使用已弃用的版本?
是的,可用性对 SDK 中的所有符号都很重要。问题不是数字在小于 10 的 iOS 版本中不可用,而是实际的 CBManagerState
符号不可用。
如果您的目标是 iOS 9,请使用该 SDK 中可用的符号和枚举(您称之为 "deprecated" 类型)。如果您特别想要支持 iOS 10 功能,请对 iOS 10 功能或版本使用可用性检查,如果检查条件符合要求,则回退到 iOS 8/9 功能没遇到。
Swift要求我在使用CBManagerState
时添加一个@available
注解,在iOS10中添加的枚举。CBManagerState
只是一个替换 CBCentralManagerState
和 CBPeripheralManagerState
,并且在 C-land 使用新的替换很好,因为枚举只是整数。
如果我想支持 iOS 9,这在 Swift 2.3 中是否也安全,还是我应该坚持使用已弃用的版本?
是的,可用性对 SDK 中的所有符号都很重要。问题不是数字在小于 10 的 iOS 版本中不可用,而是实际的 CBManagerState
符号不可用。
如果您的目标是 iOS 9,请使用该 SDK 中可用的符号和枚举(您称之为 "deprecated" 类型)。如果您特别想要支持 iOS 10 功能,请对 iOS 10 功能或版本使用可用性检查,如果检查条件符合要求,则回退到 iOS 8/9 功能没遇到。