2010-09-07 5 views
0

J'utilise CoreData et j'ai deux objets gérés: Auteur et Livre. Un auteur peut avoir des livres de mai, mais un livre ne peut avoir qu'un auteur (pour cet exemple).CoreData: extensions NSManagedObject

La classe Author étend NSManagedObject et Book étend NSManagedObject également. Dans mon cours Auteur, est-il possible de créer une extension, de sorte que je puisse faire des recherches personnalisées au sein de l'auteur. Par exemple, serait-il OK pour écrire:

Author* theAuthor = /* found somewhere else */ 
    NSArray* books = [theAuthor booksWrittenAfter:2009]; 

où l'appel à « booksWrittenAfter: » ferait la recherche dans CoreData, les livres écrits retour après 2009 pour cet auteur? J'ai écrit ceci dans le code et cela fonctionne et compile, je me demandais juste si c'était OK, ou si toutes les recherches dans CoreData devraient être faites dans une autre classe et les classes Author et Book sont plus simples?

Merci beaucoup!

Michael

+0

Je pense que c'est très bien, cela dépend de votre goût. – Yuji

Répondre

1

Oui, c'est bien. Vous pouvez également le faire depuis l'interface graphique de Core Data dans Xcode. Dans Xcode 4, cliquez et maintenez sur le signe plus en bas à gauche. Ensuite, sélectionnez Ajouter une demande d'extraction. Ensuite, vous pouvez définir la requête d'extraction ici.