簡體   English   中英

使用CloudKit保持NSArray的順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM