L'impostazione di un valore in un'entità di codice da un'altra entità. domande dati fondamentali
-
20-09-2019 - |
Domanda
Sono abbastanza nuovo per Core Data, hanno guardato attraverso molti tutorial e forum e non hanno trovato la soluzione elegante per il mio problema:
Ho tre entità nel mio modello: L'operaio, attività e SubTask. Ognuno ha un rapporto a-molti per l'entità di sotto di essa e un inversa a uno. Lavoratore ha molti compiti, ogni operazione ha molte attività secondarie, ciascuna SubTask ha un parentTask, e ogni attività ha un lavoratore. SubTask ha un attributo startTime che viene impostato l'ora attuale nel metodo newObject e un pulsante che attiva il metodo endSubTask nella mia classe SubTaskArrayController. endSubTask calcola il tempo tra startTime e ora e imposta il valore dell'attributo SubTask timeWorked. Fin qui tutto bene. Il problema:
Qual è il modo migliore per ottenere totalTimeWorked della Task selezionato attributo di aggiornarsi?
Quando cerco qualcosa come
[currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];
ottengo:
[setValue: forUndefinedKey:]: l'entità SubTask è codifica conforme per la chiave value non chiave parentTask.totalTimeWorked.
Come posso accedere gli attributi del parentTask del SubTask attualmente selezionato?
Soluzione
Si sta utilizzando un percorso chiave. Si dovrebbe usare invece setValue:forKeyPath:
.