Tag: Shallows

iOS中的轻量级持久性不应该那么难

简介Shallows —可重用,易于使用的缓存库 我认为您会同意,有时候在iOS中,本来应该很容易的事情变得很困难。 好吧, 不难 ,但是麻烦,不直观,而且绝对没有乐趣。 良好的例子之一是轻量级的持久性。 也许您想在磁盘上保存少量用户数据。 或缓存一些来自网络的信息。 甚至存储图像。 您知道这些事情很容易实现,但您却并非如此。 因为这些事情很棘手。 您将要编写很多代码( LightweightPersistenceManager ,还有其他人吗?),并且有很多事情您可能做错了,而且您的解决方案可能不会那么好或不能重复使用。 那不是你的错 只是在iOS上,轻量级持久性没有自己的抽象级别。 系统解决方案缺乏统一性,灵活性,并且往往向我们公开许多实现细节,有时会使依赖于此的代码不可测试。 Shallows的目标是提供缺少的抽象级别。 首先,这是GitHub存储库的链接: 德雷蒙德/浅滩 浅浅–🛶您的轻量级缓存工具箱 github.com 现在让我们开始吧。 抽象 认识Storage -在Shallows的轻量级持久性世界中,您的主要朋友。 Storage实例是完全抽象的-除键和值的类型外,它们不公开任何实现细节。 存储器可以执行“获取”和“设置”操作,这些操作都是易错且异步的。 让我们看看它们: storage.retrieve(forKey:“ batman”){(结果)在 切换结果{ case .success(让值): //用值做某事 案例。失败(让错误): //处理错误 } } storage.set(gordonImage,forKey:“ gordon”){(结果)在 如果result.isSuccess { //成功设置 } } 我们如何获得一个Storage实例? Storage对象是经过类型擦除的,它们实际上不包含任何逻辑。 但是Shallows提供了以下存储: MemoryStorage NSCacheStorage DiskStorage ,它是一个Storage 最后一个可能是最有趣的。 […]