🚀 数据
Rocket Data 是一个支持不可变模型持久化的模型管理系统。
动机
不可变性具有许多优点[1],但保持模型的一致性以及进行更改是非常困难的。这个库管理不可变模型的一致性和缓存。它打算作为 Core Data 的理想替代品。然而,与 Core Data 不同,它不会阻塞主线程,并且不会在您做任何事情稍有不慎时崩溃(请参阅[2]Core Data 对比)。
扩展性
Rocket Data 极好在大量模型和数据提供者上扩展。因为它几乎在后台线程上完成所有工作,所以您永远不用担心一次更改会减慢整个应用程序的速度。您还可以选择在ViewController离屏时停止监听更改,进一步提高性能。
此库针对从外部源获取数据、在设备上显示它并允许用户在此数据上执行操作的应用程序进行了优化。它实现了一种简单的模型,在ViewController和缓存之间内存中同步此数据。
自行选择缓存
借助Rocket Data,您可以自行选择缓存解决方案。我们推荐使用快速键值存储,但您可以使用任何可想象的存储。这也有助于轻松添加LRU淘汰机制。
安装
CocoaPods
将其添加到您的Podspec文件中
pod 'RocketData'
然后运行pod install
。
Carthage
将其添加到您的Cartfile
中
github "plivesey/RocketData"
然后运行carthage update RocketData --platform ios
注意:当前,由于某些原因需要使用--platform ios
。我们正在调查此问题。
Swift 版本
我们目前不维护针对不同Swift版本的不同分支。尽管如此,您可以使用较旧的Rocket Data版本来适应较旧的Swift版本。目前HEAD支持Swift 4.2。
Swift 版本 | Rocket Data 版本 |
---|---|
1 | 不支持 |
2.0 - 2.1 | 1.x.x(未测试) |
2.2 | 1.x.x |
2.3(Cocoapods) | 1.x.x |
2.3(Carthage) | 1.2.0 |
3(易于迁移的API) | 2.0.0 |
3(更好的API) | 4.x.x |
4 | 5.x.x |
4.2 | 7.x.x |
注意:如果您正在迁移到Swift 3,请考虑先使用2.0.0版,然后迁移到3.x.x。3.0.0将代码迁移到新语法,不进行任何API更改。3.x.x引入了一个更好的API,它与新的Swift 3 API指南更为一致。
文档
要开始,你应该查看文档。
一致性管理器
Rocket Data使用ConsistencyManager-iOS来管理模型的内存一致性。虽然你永远不需要直接访问一致性管理器,但了解它是如何工作的将帮助您理解Rocket Data。