Sto tentando di importare un set di dati in un persistentStore CoreData. Si tratta di dati di sola lettura che verranno presentati all'utente in fase di esecuzione.CoreData problema di relazione uno-a-molti e inversa
Ho un'entità chiamata "Categoria" che ha una relazione uno-a-molti con un'entità chiamata "Elemento", che a sua volta ha una relazione inversa con una Categoria.
Come aggiungo elementi al contesto, come li associo alla categoria corretta? Posso vedere in SQLite dB che è fatto aggiungendo un campo Category alla tabella Item e probabilmente usa la chiave primaria Categories per la relazione. Ma il PK è dietro le quinte ... c'è un metodo per fare la connessione?
vedo anche nella mia classe Categoria che ci sono metodi generati da CoreData per l'aggiunta di elementi, ma io parto dal presupposto che questi sono Alos metodi dietro le quinte che permettono CoreData di mantenere le relazioni:
@interface Category (CoreDataGeneratedAccessors)
- (void)addItemObject:(Item *)value;
- (void)removeItemObject:(Item *)value;
- (void)addItems:(NSSet *)value;
- (void)removeItems:(NSSet *)value;
@end
Ho letto nella guida alla programmazione che CoreData si occupa automaticamente dell'altro lato della relazione, ma non riesco a capire come si fa il collegamento iniziale a una categoria mentre aggiungo articoli.
Grazie
jk
Grazie, spietato. Ne avevo già tratto la maggior parte da un altro post su un'altra bacheca, ma la tua risposta è chiara come una campana. I documenti di Wish Mele erano migliori! Ora ho bisogno di imparare come recuperare gli oggetti per una determinata categoria e sono a casa gratis! jk – Alpinista
È necessario associare un NSPredicate alla richiesta di recupero che si utilizza per recuperare oggetti dall'entità Articolo. Se l'entità di categoria memorizza il nome della categoria come proprietà, si utilizza la relazione di persona da articolo a categoria: NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "category.name LIKE% @", yourCategoryNameStringHere]; Basta associare questo predicato alla richiesta di recupero che si utilizza per recuperare oggetti dall'entità Articolo. –
Grazie ancora, Spietato. Ho scoperto che puoi anche andare dall'altra direzione: se hai la categoria, puoi ottenere una serie di articoli dall'NSSet della proprietà Items della categoria. – Alpinista