web-dev-qa-db-fra.com

Comment vérifier la disponibilité de l'API dans Xcode 9

J'utilise le framework UserNotification qui n'est disponible que dans iOS 10. Je déclare une méthode qui utilise ce framework et jusqu'à présent, j'ai effectué la vérification de la disponibilité comme suit:

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

XCode 9 beta vient de sortir et avec ce code, je reçois un avertissement

'UNNotificationContent' est partiel: introduit dans iOS 10.0 Annotez 'handleWillPresentNotification: withCompletionHandler:' avec un attribut de disponibilité pour faire taire

La question est de savoir comment puis-je annoter cela dans le code Objective C toute la méthode? Je sais que Xcode 9 a introduit le

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

mais comment puis-je envelopper toute la méthode (y compris sa signature)?

à votre santé

20
Jan

pour répondre à ma propre question: je dois marquer la méthode en utilisant le NS_AVAILABLE_IOS macro comme suit:

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