dopo aver inserito un oggetto ManagedObject in un contesto, mi piacerebbe recuperarlo in seguito, ma prima di salvare il contesto (salverei dopo che tutti gli oggetti sono stati inseriti). Sembra che interrogare il contesto in un secondo momento con un recupero relativo a tali oggetti non restituisca nulla se il contesto non è stato precedentemente salvato. C'è un modo per salvare solo alla fine (Credo di poter salvare i miei oggetti in un array o un dizionario e query che ma ho pensato CoreData farebbe questo per me)CoreData: recupero di un oggetto da un contesto non salvato
risposta
Prova questa:?
[myFetchRequest setIncludesPendingChanges:YES];
Dal documentation:
imposta se, quando il recupero è eseguito, le partite contro i cambiamenti attualmente non salvate nel contesto oggetto gestito.
ho visto che prima, ma sembra non funzionare, il recupero restituisce un array di elementi 0 ma il contesto mostra 20 oggetti in esso (lo registro con [[moc insertedObjects] count]), mentre se ho salvato prima il moc contiene solo 1 oggetto inserito (ho inserito prima di andare a prendere, ma non importa) e l'array di oggetti recuperati ha una lunghezza di 1 (che è corretta). Forse perché il mio contesto è limitato a un archivio persistente, devo collegarlo a un archivio in memoria? – rano
Questo dovrebbe funzionare indipendentemente da dove si trova il negozio. Se hai più contesto, ricorda che puoi recuperare solo gli oggetti non salvati all'interno di ogni singolo contesto fino a quando ogni contesto non è stato salvato nell'archivio. – TechZen
includePendingChanges di default su SÌ in base alla documentazione, quindi questo non aiuta davvero ... –
Questo può anche fallire se si utilizza il NSDictionaryResultType http://stackoverflow.com/questions/1632029/nsdictionaryresulttype-expression-not-taking-into-account-newly-inserted-objects~~V~~3rd –