CodablePersist Logo

Swift 5.0 Version Platform Carthage Compatible SPM

CodablePersist

轻松存储和检索您超棒的 Codable 对象。CodablePersist 为您提供了一种便捷的方式,可以将您的对象存储在磁盘、UserDefaluts 和内存中,并轻松地管理它们。

特性

示例

为了快速向您展示 CodablePersist 的实用性,请考虑以下用例

class PostFetcher { 
    typealias Handler = (Result<Post, Error>) -> Void 
    private let cache = DiskStorage<Post>(storeName: "postStorage")
    
    func fetchPost(withID id: Post.ID, then handler: @escaping  Handler) {
    // check if the post is cached or not
    if let cached = cache[id] { return  handler(.success(cached)) } 
    // if not cached fetch it from the backend
    performFetching { [weak self] result in 
        // load post and cache it
        let post = try? result.get() post.map { self?.cache[id] = $0 }
        //then return the result
        handler(result) 
        } 
    } 
}

安装

CocoaPods

CodablePersist 可以通过 CocoaPods 获得。要安装

它,只需将以下行添加到您的 Podfile 中

pod 'CodablePersist'

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖项并为您提供二进制框架。

要使用 Carthage 将 CodablePersist 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它


github "engali94/CodablePersist"

运行 carthage update 来构建框架,并将构建的 CodablePersist.framework 拖到您的 Xcode 项目中。

在您的应用程序目标的“Build Phases”设置选项卡上,单击“+”图标并选择“New Run Script Phase”,然后按照 Carthage 入门指南的步骤 4、5 和 6 中提到的方式添加 Framework 路径

Swift Package Manager

要使用 Apple 的 Swift Package Manager 进行集成,请将以下内容作为依赖项添加到您的 Package.swift

dependencies: [

.package(url: "https://github.com/engali94/CodablePersist.git", from: "0.1")

]

接下来,将 CodablePersist 添加到您的目标中,如下所示

.target(
    name: "YOUR_TARGET_NAME",
    dependencies: [
        "CodablePersist",
    ]
),

然后运行 swift package update 来安装该包。

或者,导航到您的 Xcode 项目,选择 Swift Packages 并单击 + 图标来搜索 CodablePersist

手动

如果您不想使用上述任何依赖项管理器,您可以手动将 CodablePersist 集成到您的项目中。只需将 Sources 文件夹拖到您的 Xcode 项目中即可。

用法

1. 准备您的数据

确保您的类型符合 Identifiable 协议,并分配一个唯一的 idKey 属性,如下所示

struct Post: Codable, Identifiable {
   // Identifiable conformance
   static var idKey = \Post.id
  
   var title: String
   var id: String // should be unique per post 
}

2. 初始化存储

要求

贡献

热烈欢迎您的贡献🙌

许可证

CodablePesist 在 MIT 许可证下发布。有关更多信息,请参阅 LICENSE