La propriété de sous-classe NSManagedObject est créée dans son fichier de catégorie, qui est très câblé car la catégorie ne peut avoir que la méthode. Les détails sont comme ci-dessous:Propriété de sous-classe NSManagedObject dans la catégorie
(1) .J'ai créé une entité appelée BibleAudio dans le fichier .xcdatamodeld avec plusieurs attributs comme ci-dessous.
(2). XCode fichiers générés objectifs c sont "BibleAudio + CoreDataProperties.h", "BibleAudio + CoreDataProperties.m" et "BibleAudio.h", "BibleAudio.m" comme suit:
(3). dans "BibleAudio + CoreDataProperties.h", les attributs de BibleAudio sont déclarés comme propriété ici (voir ci-dessous); alors que dans "BibleAudio.h", il est vide. Pour autant que je sache, "BibleAudio + CoreDataProperties.h" est un fichier de catégorie et seule la méthode peut être déclarée ici. Ainsi, à mon avis, la bonne façon est de déclarer la propriété dans "BibleAudio.h", et si vous voulez ajouter une méthode pour cette sous-classe NSManagedObject, vous devez utiliser une catégorie pour ajouter cette méthode.
BibleAudio + CoreDataProperties.h
Quelqu'un sait-il si ma compréhension avait raison? ou si j'avais tort, quelle est la logique derrière cela?
Votre réponse vraiment aider! J'ai une question que quel est le mécanisme de BibleAudio + CoreDataProperties.h/.m (une catégorie) déclarent la propriété. Pouvons-nous aussi déclarer la propriété pour notre propre classe dans la catégorie? – Johnson
@Johnson: Les propriétés * Core Data * peuvent être définies dans une catégorie car elles ne sont pas sauvegardées par des variables d'instance mais par le contexte d'objet géré, le getter et le setter sont créés dynamiquement à l'exécution (ils sont marqués '@ dynamic' dans le fichier de catégorie .m). - Toute * votre * personnalisation est faite dans les fichiers de classe, pas dans les fichiers de catégorie. –