Ho un'interfaccia utente per inserire una transazione. una volta che l'utente fa clic su un plus, ottiene lo schermo e voglio istanziare la mia entità Core Data NSManagedObject permettendo all'utente di lavorarci sopra. Quindi, quando l'utente fa clic sul pulsante Salva, chiamerò la funzione di salvataggio.C'è un modo per istanziare un NSManagedObject senza inserirlo?
così giù per codice:
transaction = (Transaction *)[NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:self.managedObjectContext];
//even if i dont call save: its going to show up on my table
[self.managedObjectContext save:&error]
P.S Se si utilizza una NSFetchedResultsController su quel tavolo e vedere che il NSFetchedResultsController sta inserendo una sezione e un oggetto alla tabella.
Il mio pensiero è se c'è un modo per istanziare la transazione NSManagedObject potrei aggiornarlo senza salvare fino a che il client non sceglie.
Ciao @tc. Ho provato la prima risposta che è quella di inserireIntoManagedObjectContext: nil, ma poi quando ho voluto assegnare una relazione l'app si è bloccata con errore: motivo: 'Tentativo illegale di stabilire una' categoria 'di relazione tra oggetti in diversi contesti. quindi credo che la mia domanda è che non è legale creare una relazione tra un oggetto NSManaged di contesto e un oggetto gestito fuori contesto, quale sarebbe la soluzione? –
Ho finito per creare un'entità di categoria allo stesso modo senza contesto, ma quando si trattava di salvare ho aggiunto entrambi al contesto e poi ha funzionato bene. –
Posso attestare la correttezza di questa risposta.Sono appena stato morso da un problema relativo al contesto nullo di un oggetto. I valori di attributo assegnati all'oggetto prima di aggiungerlo a un contesto non si propagano al contesto padre quando alla fine l'oggetto viene aggiunto al contesto figlio. Gli attributi sono memorizzati come 'nil' nell'archivio di persistenza. Quando ho cambiato l'ordine (cioè assegnare i valori degli attributi dopo averlo inserito in un contesto), le cose hanno funzionato correttamente. Morale della trama è, non è una buona idea istanziare un oggetto senza un contesto. –