Le relazioni di uno sono modellate come riferimenti di oggetto da Core Data. Quindi, una relazione a uno da Entità Bar
all'entità Baz
(assumendo Baz
è implementato dalla classe Baz
) sarebbe
@interface Bar : NSManagedObject {
}
@property (readwrite,nonatomic) Baz * toBaz;
@end
a-molti sono modellati come un insieme di proprietà mutabile (anche se non come NSMutableSet
). Ipotizzando un rapporto a-molti da Bar
a Baz
chiamato manyBazz
:
@interface Bar : NSManagedObject {
}
@property (retain) NSSet* manyBazz;
@end
// coalesce these into one @interface AnalysisRecord (CoreDataGeneratedAccessors) section
@interface Bar (CoreDataGeneratedAccessors)
- (void)addManyBazzObject:(Baz *)value;
- (void)removeManyBazzObject:(Baz *)value;
- (void)addManyBazz:(NSSet *)value;
- (void)removeManyBazz:(NSSet *)value;
@end
Se si desidera utilizzare l'interfaccia NSMutableSet di manipolare il rapporto manyBazz
, si dovrebbe chiamare -mutableSetValueForKey:@"manyBazz"
per ottenere un proxy KVO-compliant per la relazione manyBazz
.
Su Leopard (OS X 10.5) e versioni successive, tutti i metodi appropriati vengono generati automaticamente in fase di esecuzione dal framework Core Data, anche se non vengono dichiarati esplicitamente o implementati (si otterrà, ovviamente, un compilatore avviso se si tenta di usarli senza dichiararli in un file di intestazione). In questo modo non necessità sottoclasse
Il modo più semplice per ottenere la dichiarazione e l'attuazione a destra è quello di selezionare gli attributi nel modellatore di dati e scegliere "Copia Objective-C 2.0 Dichiarazioni metodo per Clipboard" dal "Design- > Modello di dati "menu, l'incolla nel file .h di classi di implementazione. Ovviamente, devi mantenere il tuo .h e il modello in sincrono ... quindi una raccomandazione calorosa per il fantastico MO Generator di rentzsch, uno strumento che genera automaticamente (e ri-genera) sottoclassi NSManagedObject dal tuo modello dati.
fonte
2009-05-11 20:44:20
Inoltre, dai un'occhiata a [questo post del blog] (http://nvie.com/archives/263 "Genera automaticamente le classi per il tuo modello di dati Core Data") per la generazione di classi ** estremamente automatica ** automatica . – nvie