我使用PFObject.saveAllInBackground()
在我的Parse數據庫中創建了一堆新對象。這些是數據庫中尚不存在的新對象。處理PFObject.saveAll()的部分成功
創建完成後,我需要在我的本地應用數據庫中跟蹤他們的objectId
,以便稍後進行更新。
使用saveAll()
幾乎是一個需求,循環1000+對象並單獨保存它們是很慢的,它壓倒了Parse後端。
saveAll()的結果是布爾值:它告訴我整個操作是否成功。
但是,當它返回一個失敗(使用NSError
對象告訴我出了什麼問題)時,這些對象中的一些已成功在服務器上創建。
在這種情況下,我想知道我的saveAll()
批次中的哪些對象已成功創建並檢索它們的objectId
,因此當我嘗試再次保存時,我不會複製它們。
所以我的問題是:當PFObject.saveAll()
失敗,我怎麼知道哪些對象已成功保存/創建,如果有的話?
是的,但是當我保存一批對象並且只有其中一些成功創建時,它們的objectid沒有設置。 – 2014-11-20 23:55:39
自定義的uuid建議很有意思,但是爲了知道保存哪些對象,不得不運行Parse查詢並不是一件好事,考慮到這會在Parse保存命令失敗時發生 - 這可能意味着網絡不良,超過配額,解析超時等...所以查詢失敗的機率很高,我仍然不知道哪些對象已成功創建。 – 2014-11-21 01:12:26
既然你說Parse沒有設置objectID,即使對象被保存在Parse上(這看起來像一個Parse bug,你應該用Parse打開一個bug),你必須確定自己是否保存了對象。所以你需要創建你自己的唯一ID,UUID是一個很好的解決方案。關於超時,您可以創建一個本地數據庫,其中包含要求Parse插入並確認哪些實際保存的記錄,然後再進行另一次保存。我希望這有幫助。 – 2014-11-21 02:24:18