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