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