这个小类旨在与UITableView
和其他类似视图一起使用。它的目的是简化显示数据的平滑更新。它通过通知您数据的哪些部分已删除、哪些已移动以及哪些是新添加的来做到这一点。然后这些操作可以直接转换为表格视图方法,以插入、移动和删除行或部分。
首选方法是使用CococaPods。
pod 'PHFArrayComparator', '~> 1.0.0'
如果您无法使用CocoaPods(尽管您应该使用,因为它是当红炸子鸡),则可以从项目获取PHFRefreshControl.{h,m}
文件并将其放入您的项目中。代码使用了自动引用计数(ARC),因此请确保您已经在该项目使用了ARC,否则请将此文件设置为开启ARC。
NSArray *a = @[ @"A", @"B", @"C" ];
NSArray *b = @[ @"X", @"C", @"B", @"D" ];
NSDictionary *instructions = [PHFArrayComparator compareOldArray:a withNewArray:b];
instructions
包含三个键
PHFArrayComparatorDeletesKey
:包含两个NSNumber
的数组数组,指示从旧数组中删除的项目索引和计数,例如[2, 3]
表示在第2个索引处删除了3个项。PHFArrayComparatorMovesKey
:包含两个NSNumber
的数组数组,指示持久化项目的旧索引和新索引(即现有项目)在旧数组中的术语,该项目需要与其他持久化项目交换,以尊重新项目顺序。PHFArrayComparatorInsertsKey
:包含两个NSNumber
的数组数组,指示在新数组中插入的项目索引和计数。因此,instructions
的内容如下(按JSON表示法)。
{
"PHFArrayComparatorDeletesKey": [[0, 1]],
"PHFArrayComparatorMovesKey": [[2, 1], [1, 2]],
"PHFArrayComparatorInsertsKey": [[0, 1], [3, 1]]
}
有关完整示例,请查看Examples/
中的Xcode项目。
PHFArrayComparator
是根据MIT许可证发布的。
Philipe Fatio (@fphilipe)