@available
@available可用于修饰类,协议,方法,属性,表明这些类型适用的平台和操作系统
@available(iOS 10.0, *)
Class Person {}
@available(iOS 10.0, *)
public protocol UNUserNotificationCenterDelegate : NSObjectProtocol {}
@available(iOS 10.0, *)
public func remoteUserNotification(){}
@available(iOS 3.0, *)
open var highlightedImage: UIImage? // default is nil
@available(iOS 10.0, macOS 10.12, *)
@available(swift 3.0.2)
@available(macOS 10.12, *)
struct MyStruct {}
#available
#available 用在条件语句代码块中,判断不同的平台下,做不同的逻辑处理,比如:
if #available(iOS 8, *) {}
guard #available(iOS 11, *) else {}
作用时期
@available:编译期 ------------- #available:运行期