[英]Keep order of NSArray with CloudKit
我目前正在設計一個基於CloudKit
的同步解決方案,我想知道最好的方法是保持列表(在我的情況下是一個數組)的雲項( CKRecord
對象)的順序是一致的。
Apple建議不要持有對子對象的引用,而只是使用來自子對象的CKReference
引用父對象。 如果您想根據其中一個屬性(例如創建日期)查詢項目,則可以正常工作,但如果您有一個由用戶確定的訂單則不行。
我提出了兩種基於相同想法的不同方法:維護標識符清單以管理項目的位置。
1)同步具有標識符數組的額外記錄(aka清單),每個標識符標識CKRecord
對象(以及對應的本地模型對象)。
2)創建一個父對象,它包含一個引用數組( CKReference
對象)到它的子對象。 此數組維護給定的順序。
我覺得這不是解決這個問題的最好辦法,我很高興聽到你的想法。
Apple確實建議不要保留對子對象的引用,但這並不意味着你不能只在你的對象中包含一個帶有記錄Id的數組。 這些不必是CKReference對象。 您可以只保存一個字符串值數組。
我認為你是對的,這將是維持排序順序的最佳/最簡單的方法。
另一種解決方案是創建鏈表。 然后每條記錄都需要引用下一條記錄。 更改訂單時,您只需更改3條記錄。 1指向記錄的記錄,指向記錄的新記錄和記錄本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.