如何检查 API 在 Xcode 9 中的可用性
How to check for API availability in Xcode 9
我正在使用仅在 iOS 10 中可用的 UserNotification
框架。我正在声明一个使用此框架的方法,到目前为止,我一直在检查可用性如下:
@interface MyService : NSObject
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000
-(BOOL)handleWillPresentNotification:(UNNotificationContent *)notificationContent;
#endif
@end
XCode 9 beta 刚刚发布,使用这段代码我收到警告
'UNNotificationContent' is partial: introduced in iOS 10.0
Annotate 'handleWillPresentNotification:withCompletionHandler:' with an availability attribute to silence
问题是如何在 Objective C 代码中注释整个方法?我知道 Xcode 9 引入了
if (@available(iOS 10, *)) {
// iOS 10 ObjC code
}
但如何将整个方法(包括其签名)包装在其中?
干杯
回答我自己的问题:我需要使用NS_AVAILABLE_IOS
宏标记方法如下:
-(BOOL)handleWillPresentNotification:(UNNotificationContent *)notificationContent NS_AVAILABLE_IOS(10_0);
我正在使用仅在 iOS 10 中可用的 UserNotification
框架。我正在声明一个使用此框架的方法,到目前为止,我一直在检查可用性如下:
@interface MyService : NSObject
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000
-(BOOL)handleWillPresentNotification:(UNNotificationContent *)notificationContent;
#endif
@end
XCode 9 beta 刚刚发布,使用这段代码我收到警告
'UNNotificationContent' is partial: introduced in iOS 10.0 Annotate 'handleWillPresentNotification:withCompletionHandler:' with an availability attribute to silence
问题是如何在 Objective C 代码中注释整个方法?我知道 Xcode 9 引入了
if (@available(iOS 10, *)) {
// iOS 10 ObjC code
}
但如何将整个方法(包括其签名)包装在其中?
干杯
回答我自己的问题:我需要使用NS_AVAILABLE_IOS
宏标记方法如下:
-(BOOL)handleWillPresentNotification:(UNNotificationContent *)notificationContent NS_AVAILABLE_IOS(10_0);