parse.com - docs - parse android studio
Error: "include no es vĂ¡lido para los objetos que no son ParseObjects"(utilizando parse-osx-library-1.7.5) (1)
Tengo un objeto Meal que almacena punteros a n objetos creados "FoodInfo" usando la clave "MealItems".
Cuando consulto la comida, aprovecho la [consulta includeKey: @ "MealItems"] para buscar los elementos señalados mientras obtengo la "Comida".
Esto funciona maravillosamente si los objetos se crean mientras están en línea (es decir, todos están almacenados en la nube db).
Sin embargo, dado que no puedo asumir el acceso a la nube en todo momento para esta aplicación, ahora intento habilitar el almacén de datos local, así que he cambiado mis consultas para usar: [query fromLocalDatastore];
y he cambiado todos los métodos de guardado de mis objetos a pinInBackgroundWithBlock seguido por (suponiendo éxito del guardado local) saveInBackgroundWithBlock seguido por (suponiendo que falla) saveEventually.
Para probar esto, yo:
- desconectado wifi
- ejecutó el código para crear una comida y luego agregarle alimentos recién creados. Esto funciona sin códigos de error.
- ejecutó un informe que luego pregunta por la comida recién creada. Esto falla con lo siguiente:
Error: Error Domain=Parse Code=121 "include is invalid for non-ParseObjects" UserInfo=0x60800007f400 { error=include is invalid for non-ParseObjects, NSLocalizedDescription=include is invalid for non-ParseObjects, code=121 } { NSLocalizedDescription = "include is invalid for non-ParseObjects"; code = 121; error = "include is invalid for non-ParseObjects"; }
¿Este escenario no es compatible?
Cuando vuelvo a habilitar wifi, la comida se agrega con éxito a la base de datos en línea, pero el error de consulta todavía ocurre cuando ejecuto la consulta localmente con includeKey.
¿Me estoy perdiendo de algo? Estoy bastante sorprendido de ver que esto falla. Parece una característica realmente básica que debería funcionar ya sea local o en la nube.
Los objetos Parse no se crean hasta que los guardas. Intente utilizar saveEventually
primero antes de usar pinInBackgroundWithBlock
.