簡體   English   中英

iPhone:如何同步2個NSMutableArrays的內容?

[英]iphone: how can i synchronize the contents of 2 NSMutableArrays?

我目前有一個NSMutableArray,用於存儲Video對象的集合。

每個視頻對象都有一個ID和TITLE。

我還具有另一個NSMutableArray視頻對象,這些視頻對象是通過解析XML API調用生成的。

當用戶單擊“同步”按鈕時,我希望系統能夠弄清楚使兩個列表同步所需的最小操作數(刪除和添加視頻)。

這樣做的最佳方法是什么? Objective-C是否定義了執行此操作的任何方法? 如果沒有,我可以實現一種特殊的算法嗎?

(個人而言,我不想遍歷兩個列表中的每個項目)

假設您僅添加和刪除視頻,則可以有兩個NSMutableDictionaries,一個用於刪除,另一個用於添加視頻。 當添加視頻時,您將添加一個條目到ADDDictionary中,當您刪除一個視頻時,首先要檢查它是否在ADDDictionay中顯示為條目,如果刪除,則將其添加到DELDictionary中。

如果實現了isEqual: -removeObjectsInArray:並且可以合理地進行hash則可以使用-removeObjectsInArray:獲得差異:

NSMutableArray *old = ...;
NSMutableArray *new = ...;

NSMutableArray *toAdd    = [new mutableCopy];
NSMutableArray *toDelete = [old mutableCopy];
[toAdd    removeObjectsInArray:old];
[toDelete removeObjectsInArray:new];

但是請注意,此類數據會使字典或集合更加自然。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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