0

Parse ローカル データストアをテストして、主にオフラインで使用されるアプリの SQLite の代わりとして使用できるかどうかを評価しています。バグを見つけたのでしょうか?

Product クラスと Order クラスを考えてみましょう。

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.

それはプラットフォームの制限ですか、それとも私のコードのバグですか?

: メモリからコードを入力したので、軽微な問題は無視してください。

4

3 に答える 3

0

以下のコードを参照してください。XCODEなしで変更したので、タイプミスがあるかもしれないことに注意してください:) 以下のコードは、ローカルデータストアからのクエリを満たすように見えるだけです。「saveEventually」は Parse クラウドとプッシュ (同期) しますが、データをローカルで利用できるようにする場合は、名前の有無にかかわらず固定する必要があります。

let p = Product()
p.productName = "Test Product"
p.pinWithName("test")
p.saveEventually()

let o = Order()
o.orderId = "TestOrder01"
o.product = p

o.pinWithName("test")
o.saveEventually()

let query = Order.query()
query.fromPinWithName("test")
query.whereKey("product", equalTo: p)

let results = query.findObjects() 
于 2015-05-11T12:48:43.577 に答える