我有一个名为
我想比较旧数组和新数组的变化。我想要的是两个
通过以下示例可以更清楚地了解整个问题:
我希望能够从旧的和新的
编辑1
如果我解释一下我想用这个做什么,可能会更清楚。
实际上,我正在使用它来更新一个UITableView,使用方法
编辑2
应该早点提到,但是旧数组和新数组中的元素将按升序排列。只有删除或添加的索引才重要。顺序不能改变。例如,{@"b",@"a",@"c",@"d"}不能是一个数组。
oldArray
的NSMutableArray
。现在,在某一点上,这个NSMutableArray
对象将被另一个NSMutableArray
更新,后者可能具有比前一个NSMutableArray
更多、更少或相同数量的元素。我想比较旧数组和新数组的变化。我想要的是两个
NSArray
:addedArray
和removedArray
,它们将包含从旧数组中添加和/或删除的元素的索引。通过以下示例可以更清楚地了解整个问题:
oldArray = {@"a",@"b",@"d",@"e",@"g"};
newArray = {@"a",@"c",@"d",@"e",@"f",@"h"};
在这里,被删除的对象是位于索引1和4的@"b"和@"g"。同时,在索引1、4和5添加了@"c"、@"f"和@"h"(先删除原有对象,再添加新的对象)。
因此,
removedArray = {1,4}; and addedArray = {1,4,5};
我希望能够从旧的和新的
NSMutableArray
中高效地获取这两个数组-removedArray
和addedArray
。谢谢!如果问题不是很清楚,我可以提供更多信息。编辑1
如果我解释一下我想用这个做什么,可能会更清楚。
实际上,我正在使用它来更新一个UITableView,使用方法
insertRowsAtIndexPaths
和removeRowsAtIndexPaths
进行加载后的动画,以便用户可以看到删除的行出去,新的行进来。 TableView存储用户可以添加或删除的收藏夹元素。因此,在添加一些收藏夹并删除一些收藏夹后,当用户返回到收藏夹tableView时,将显示动画。编辑2
应该早点提到,但是旧数组和新数组中的元素将按升序排列。只有删除或添加的索引才重要。顺序不能改变。例如,{@"b",@"a",@"c",@"d"}不能是一个数组。
insertRowsAtIndexPaths
和removeRowsAtIndexPaths
方法进行动画处理。 - aksh1t