web-dev-qa-db-ja.com

Xcode 9でAPIの可用性を確認する方法

私は、iOS 10でのみ使用可能なUserNotificationフレームワークを使用しています。このフレームワークを使用するメソッドを宣言しています。これまで、次のように可用性のチェックを行ってきました。

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

XCode 9ベータ版はリリースされたばかりで、このコードでは警告が表示されます

「UNNotificationContent」は部分的です:iOS 10.0で導入された「handleWillPresentNotification:withCompletionHandler:」に注釈を付ける

問題は、Objective Cコードでメソッド全体にどのように注釈を付けるかです。 Xcode 9が導入したことを知っています

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

しかし、どのようにメソッド全体(署名を含む)をラップするのですか?

乾杯

20
Jan

自分の質問に答えるには、次のようにNS_AVAILABLE_IOSマクロを使用してメソッドをマークする必要があります。

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