11

Je suis en train de créer un framework qui peut fonctionner avec CoreData si vous le souhaitez. Le framework a également des fonctionnalités en dehors de CoreData. Comment est-ce que je peux emballer tout le code spécifique de CoreData dans IfDef, vérifiant si le cadre de CoreData est disponible?Vérification de la présence d'un framework Objective-C

+0

Vous voulez donc que votre bibliothèque prenne la décision au moment de la compilation plutôt que de l'exécuter pour utiliser CoreData? Cela signifie que si vous distribuez un fichier de bibliothèque, vous aurez plusieurs versions, et si vous compilez le code, vous devez vous souvenir de définir des définitions dans les paramètres de construction ou assez tôt dans le processus de construction. – Joe

+1

Que diriez-vous de '#ifdef _COREDATADEFINES_H'? –

+0

Semble le contraire - il veut prendre la décision au moment de l'exécution d'utiliser Core Data (basé sur sa disponibilité et l'affirmation de l'utilisateur). – Perception

Répondre

9

Ce que vous voulez faire est d'utiliser un weak link à la fondation CoreData. Une fois que vous faites cela, vous pouvez utiliser runtime checks pour vous assurer que CoreData est disponible. Les variables constantes peuvent également être checked for existence lors de l'exécution. Si vous utilisiez des vérifications de préprocesseur (#if#ifdef), vous auriez alors deux versions de structure distinctes à distribuer avec chaque version.

Questions connexes