Je travaille actuellement sur une application iOS qui comprend une extension d'application watchOS
. Dans mon application iOS, j'ai créé une sous-classe NSObject
, qui utilise certains objets du framework AVFoundation
dans certaines de ses méthodes. Sur le côté Extension de la montre, je crée un objet NSDictionary
puis je l'envoie à mon homologue iOS à l'aide du cadre WatchConnectivity
. J'utilise ensuite le dictionary
pour initialiser ma classe personnalisée. Je voudrais être en mesure d'ajouter mon Extension de Montre comme l'une des Cibles pour le fichier .m
de ma classe personnalisée afin que je puisse aller de l'avant et créer des objets de ma classe personnalisée sur la montre, puis l'envoyer. (Ma classe est conforme au protocole NSCoding
donc je peux utiliser NSKeyArchiver
pour représenter mon objet en utilisant NSData
, l'ajouter à un dictionnaire, puis transférer ce dictionnaire sur le périphérique iOS).Objet de même classe avec différentes méthodes pour iOS et watchOS (Objective-C)
Le problème: AVFoundation
n'est pas disponible dans watchOS
, que ma classe utilise. Alors, est-il un moyen de « omettre » certaines méthodes d'une classe selon quel OS il est dans
Ex.: Dans iOS, UIImage
a la méthode initWithCIImage:
mais il n'est pas disponible dans watchOS
puisque le cadre CoreImage
n'est pas disponible.
(Peut-être que je devrais recréer la classe spécifiquement pour watchOS
avec toutes les mêmes variables d'instance et d'utiliser les mêmes touches pour les classes dans les NSCoding
méthodes, en omettant AVFoundation
de la version watchOS
?)
Toute aide serait grandement apprécié!
J'ai enveloppé toutes les méthodes en question comme vous l'avez suggéré, mais je reçois toujours des erreurs de construction dans les méthodes qui utilisent des objets AVFoundation. Ex: "Utilisation de l'identificateur non déclaré" XXX "". –
Sans voir tout votre code, je ne peux pas être plus précis. C'est la bonne technique à utiliser pour inclure (ou pas) de code lorsque vous construisez pour un système d'exploitation particulier. Vous devrez examiner attentivement votre code et vous assurer que tout est correctement configuré. – par