2016-11-15 53 views
0

當我的iOS應用程序第一次啓動時,它使用默認數據初始化一些實體。當應用程序首次安裝在設備上時,同一用戶的每個設備都會完成相同的過程。這會導致Simperium出現問題,因爲即使我對某個實體的屬性有一個約束,它也會創建重複項。如何避免這種情況發生?有沒有辦法讓Simperium跳過對象在本地初始化?或者爲了防止它插入重複?Simperium重複現有記錄

會將實體的simperiumKey設置爲一個自定義的常量值,這對用戶的所有設備都是相同的修復問題?我的意思是,這是否會阻止Simperium從不同設備導入同樣的實體,從而產生重複和同步衝突?

因爲我試過這個選項,它看起來像Simperium服務器上的桶是可以的,但是當我處理視圖並再次打開時,實體不再存在。當我重新啓動應用程序,他們又回來了......它看起來像消失後復位應用程序重新出現..很奇怪。

UPDATE 問題是我得到重複的實體,如果我嘗試從不同的設備插入相同的實體。例如。當我第一次安裝我的應用程序時,我有一個函數用代碼和其他東西初始化CURRENCY實體。如果用戶決定將應用程序安裝在新的應用程序上,則可以從不同的設備執行相同的操作。在這種情況下,由於新設備將再次初始化CURRENCY實體,這些信息將生成重複項和衝突錯誤。我需要一種方法讓Simperium明白設備中本地初始化的實體不能重複。我會從SPManagedObject中移除繼承,以阻止Simperium同步這些實體,但是他們又與其他實體有關係,並且這會與Simperium確定地產生問題,因爲它會嘗試同步與不繼承的對象有關係的實體來自SPManagedObject。希望你現在有一個更清晰的想法。

+0

你可以請顯示代碼你如何試圖實現這一點。 –

+0

哪個代碼?你能否澄清你的要求? Tx – Sergiob

+0

您首先在Simperium中遇到什麼樣的問題,理想情況是第一段說有問題。你寫了你所嘗試的,但究竟是什麼問題。 –

回答

0

在閱讀了關於這個主題的各種帖子之後,我已經理解了沒有註銷(這意味着:不調用signOutAndRemoveLocalData)並設置自定義simperiumKey-s將防止數據重複。我測試了這個解決方案,顯然看起來不錯。我的應用程序需要Simperium與同一用戶的其他設備同步數據,但它主要與本地CoreData數據庫一起使用。我希望這個解決方案適合這種情況。