如何检查Xcode 9中的API可用性

时间:2017-07-25 11:59:05

标签: objective-c ios10 foundation

我正在使用仅在iOS 10中可用的UserNotification框架。我宣布使用此框架的方法,到目前为止,我一直在检查可用性,如下所示:< / p>

@interface MyService : NSObject
 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000
    -(BOOL)handleWillPresentNotification:(UNNotificationContent *)notificationContent;
#endif
@end

XCode 9 beta刚刚发布,使用此代码我收到警告

  

&#39; UNNotificationContent&#39;是部分:在iOS 10.0中引入   Annotate&#39; handleWillPresentNotification:withCompletionHandler:&#39;使用可用性属性来沉默

问题是如何在Objective C代码中对整个方法进行注释?我知道Xcode 9引入了

if (@available(iOS 10, *)) {
    // iOS 10 ObjC code
}

但是如何将整个方法(包括其签名)包装在其中?

欢呼声

1 个答案:

答案 0 :(得分:37)

回答我自己的问题:我需要使用NS_AVAILABLE_IOS宏来标记方法,如下所示:

-(BOOL)handleWillPresentNotification:(UNNotificationContent *)notificationContent NS_AVAILABLE_IOS(10_0);