Ответ 1
Нет, не может. Parse просто кэширует результаты ваших запросов. Это чрезвычайно ограничивает и не то же самое, что кэширование всех ваших PFObject. Например, скажем, вы выполнили запрос для всех ваших "контактов" PFObjects. Единственное, что вы могли бы сделать с кешем, - это запустить тот же самый запрос позже (и получить тот же результат). Вы даже не могли запросить подмножество данных кэширования.
Другая проблема заключается в том, что кешированные объекты не будут обновляться с изменениями, внесенными вашим пользователем в ваши PFObjects. Например, скажем, пользователь редактирует контакты в автономном режиме, и ваш код вызывает saveEventually
, чтобы сохранить эти изменения в разделе "Анализ", когда это возможно. Когда вы получите результат кэшированного запроса, пользовательские изменения не будут отображаться в ваших PFObjects. То же самое относится к удаленным и добавленным PFObjects, которые я считаю. Это заставит оффлайн использовать ужасно. Вот нить из форума Parse, затрагивающего эту тему:
Я видел, что разработчики Parse упоминают улучшенное кэширование объектов Parse, которые появляются в какой-то момент в будущем. Однако эта функция еще не существует, и она не знает, когда она придет. В то же время, если вы хотите поддерживать автономное использование, вам нужно использовать Core Data или какой-либо другой локальный магазин. FTASync (который я никогда не использовал) предназначен для синхронизации объектов Parse с основными данными:
https://github.com/itsniper/FTASync
Вы также можете написать свой собственный код для синхронизации двух наборов данных.