Я тестирую локальный хранилище Parse, чтобы оценить, могу ли я использовать его в качестве замены для SQLite для приложения, которое в основном будет использоваться в автономном режиме. Возможно, я нашел ошибку?Parse.com local datastore: пытался сохранить объект с новым несохраненным ребенком
Рассмотрим продукта и заказ классы:
class Product : PFObject, PFSubclassing {
@NSManaged var productName: String!
}
class Order : PFObject, PFSubclassing {
@NSManaged var orderId: String!
@NSManaged var product: Product!
}
С интернетом отключены, когда я запускаю следующий код, он выходит из строя на последней строке с Tried to save an object with a new, unsaved child.
let p = Product()
p.productName = "Test Product"
p.saveEventually()
let o = Order()
o.orderId = "TestOrder01"
o.product = p
o.saveEventually()
let query = Order.query()
query.whereKey("product", equalTo: p)
let results = query.findObjects() // crashes with Tried to save an object with a new, unsaved child.
это платформа ограничение или ошибка в моем коде?
ПРИМЕЧАНИЕ Я набрал код из памяти, поэтому игнорируйте незначительные проблемы.
Вы правы, но моя точка зрения не должна сохранять 'saveEventually()' сохранять в локальном хранилище данных (поскольку у пользователя нет Интернета)? Это очень распространенный сценарий для пользователя, который создает объекты и код, чтобы запросить их для обновления интерфейса (в автономном режиме). Таким образом, это действительно ограничение на платформу. Невозможно выполнить запросы, если данные уже не сохранены * онлайн *, правильно? – User123