Differific
描述
Differific 是一个使用 Paul Heckel 的 diffing 算法帮助你比较可哈希对象的 diffing 工具。创建更改集合以适应所有你的 diffing 需要。该库还包括一些便利扩展,以便在更新数据源时更加便捷。
该库基于并深受 Matias Cudich (@mcudich) 的 HeckelDiff 库的影响,旨在解决相同问题。版本 0.3.0 之前基于 DeepDiff。有关算法的工作原理和性能的更多信息,请查看 DeepDiff。目前,这两个框架非常相似;这将在框架发展时发生变化。
功能
-
🍩 内置扩展以更新表格和集合视图。 -
🎩 可定制的 diffing。 -
🏎 高性能。 -
📱 iOS 支持。 -
💻 macOS 支持。 -
📺 tvOS 支持。
用法
比较两个集合
let old = ["Foo", "Bar"]
let new = ["Foo", "Bar", "Baz"]
let manager = DiffManager()
let changes = manager.diff(old, new)
更新表格或集合视图
// uiElement is either your table view or collection view.
let old = dataSource.models
let new = newCollection
let changes = DiffManager().diff(old, new)
uiElement.reload(with: changes, before: { dataSource.models = new })
安装
Differific 通过 CocoaPods 可用。要安装,只需将以下行添加到您的 Podfile 中
pod 'Differific'
Differific 也可以通过 Carthage 使用。要安装,只需在 Cartfile 中写入
github "zenangst/Differific"
Differific 还可以手动安装。只需下载并将 源
文件夹拖放到您的项目中。
作者
- Christoffer Winterkvist, [email protected]
- Khoa Pham, [email protected]
贡献
我们希望您为 Differific 做出贡献,有关更多信息,请查看 CONTRIBUTING 文件。
许可协议
Differific 根据 MIT 许可协议可用。有关更多信息,请参阅 LICENSE 文件。