通過iOS教程,似乎Simperium的工作方式與iCloud Core Data非常相似,它在後臺透明地同步,並將更改寫入底層持久存儲區,併合併到當前託管對象上下文中的更改。我相信這是待辦事項列表示例應用程序的工作方式,因爲NSFetchedResultsController會自動檢測其託管對象上下文中的更改。Simperium如何處理自定義驗證邏輯?
但是我的問題是,是否有任何API用於檢測可能發生的衝突?這實際上是一個兩部分問題。首先,Simperium無法處理並嚮應用程序報告以定製方式處理的任何衝突?其次,假設我有一個約束,它實際上是作爲核心數據驗證方法實現的,例如,確保子項數量的總和等於他們父項的數量(不要問我爲什麼,它是隻是它應該如何在我的應用程序中),當Simperium從多個設備同步更改時,可能會出現這樣的情況:兩個設備都會編輯子項目,以使子項目的總和不再等於父項目的數量。 Simperium會將無效數據寫入我的永久性存儲中嗎? (即繞過我的核心數據驗證)。或者,它是否會以某種方式向我報告驗證錯誤,並讓我解決應用程序內的衝突?
如果可以處理這些案例,我們很樂意使用Simperium。