Sto costruendo un'app OS X che utilizza i dati principali, NSDocument, storyboard e associazioni Cocoa.Come si associa una visualizzazione dello storyboard a un'entità Core Data quando si utilizza NSDocument?
La mia aspettativa è che si verifica quanto segue:
viene creata un'istanza di
MyDocument
(NSDocument
sottoclasse).MyDocument
crea un Core DataNSManagedObjectContext
che rappresenta i dati del documento.MyDocument
crea unoNSWindowController
dallo storyboard tramite il suo identificatore.All'interno dello storyboard, il controller della finestra contiene
DocumentEditorViewController
(sottoclasseNSViewController
) che visualizza e modifica il documento.All'interno dello storyboard,
DocumentEditorViewController
ha unNSArrayController
che è destinato aMyDocument
's contesto oggetto gestito.All'interno dello storyboard,
DocumentEditorViewController
ha una vista tabella associata aNSArrayController
.
In questo modo tutte le modifiche nell'interfaccia utente rendono tutto fino alla NSManagedObjectContext
, senza alcun codice di colla.
Mi aspetto che questo sia semplice, poiché credo che sto utilizzando queste tecnologie nel modo in cui sono destinate. Tuttavia, non sono riuscito a far funzionare i binding, in particolare ai passaggi 5 e 6. Tutti i modelli di progetto e i progetti di esempio che ho trovato non utilizzano Core Data, non usano storyboard o non usano NSDocuments.
Quali oggetti devono essere associati a quali? Quale dovrebbe essere la classe, le chiavi e il keypath di NSArrayController?
Un altro modo per rispondere a questa domanda è indicare un progetto campione funzionante che utilizzi tutte queste tecnologie insieme.
Si sta utilizzando un separato 'NSManagedObjectContext' per ogni documento? È il modo consigliato in OSX/app basate su documenti? Nelle app iOS (non basate su documenti), di solito utilizzo un singolo contesto (di proprietà del delegato dell'app) e separate istanze di 'NSManagedObject' per ogni oggetto del modello ... –
Non vedo alcun esempio o guida da Apple che risponde alla tua domanda. Penso che i contesti degli oggetti gestiti separati abbiano più senso perché i documenti sono completamente indipendenti. Non ha senso per me mescolare i loro dati in un singolo contesto e quindi dover filtrare tutti gli accessi al contesto per il sottoinsieme di dati della vista corrente. –
Hai provato un testcase in cui aggiungi alcuni oggetti MOC a livello di codice e vedi la tabella? Non è chiaro quando fai riferimento a 5 e 6 se hai provato a eseguire il debug dei binding separati dalla capacità dell'AC di creare contenuti. – stevesliva