2010-07-13 22 views
6

después de insertar un ManagedObject en un contexto que me gustaría buscar más tarde pero antes de guardar el contexto (lo guardaría después de insertar todos los objetos). Parece que consultar el contexto más adelante con una búsqueda relacionada con esos objetos no devuelve nada si el contexto no se guardó previamente. ¿Hay una manera de ahorrar sólo en el final (supongo que puedo guardar mis objetos en una matriz o diccionario y consulta que pero pensé coredata harían esto para mí)CoreData: Obtener un Objeto de un Contexto no guardado

+0

Esto también puede fallar si se está utilizando el NSDictionaryResultType http://stackoverflow.com/questions/1632029/nsdictionaryresulttype-expression-not-taking-into-account-newly-inserted-objects~~V~~3rd –

Respuesta

16

Prueba esto:?

[myFetchRequest setIncludesPendingChanges:YES]; 

Desde el documentation:

se establece si, cuando el fetch es ejecutado, hace juego contra los cambios no guardados actualmente en el contexto de objeto gestionado.

+0

vi que antes, pero parece que no funciona, la búsqueda devuelve una matriz de 0 elementos pero el contexto muestra 20 objetos en ella (la registro con [[moc insertedObjects] count]), mientras que si guardé antes de que la moc contenga solo 1 objeto insertado (inserté) antes de ir a buscar, pero no importa) y la matriz de objetos recuperados tiene una longitud de 1 (que es correcta). Tal vez sea porque mi contexto está vinculado a una tienda persistente, ¿debo vincularlo a una tienda en la memoria? – rano

+0

Esto debería funcionar independientemente de dónde está la tienda. Si tiene contexto múltiple, recuerde que puede buscar solo los objetos no guardados dentro de cada contexto individual hasta que cada contexto se haya guardado en la tienda. – TechZen

+0

includesPendingChanges se establece de manera predeterminada en YES de acuerdo con la documentación, por lo que esto realmente no ayuda ... –

Cuestiones relacionadas