CloudKit + Codable = ❤️

Badge showing the current build status

这个项目实现了 CloudKitRecordEncoderCloudKitRecordDecoder,允许自定义数据类型自动转换为/从 CKRecord 转换。

用法

有关如何使用 CloudKitCodable 的详细信息,请查看包含的文档。

示例

声明一个可以编码为 CKRecord 的模型

struct Person: CustomCloudKitCodable {
    var cloudKitSystemFields: Data?
    let name: String
    let age: Int
    let website: URL
    let avatar: URL
    let isDeveloper: Bool
}

CustomCloudKitCodable 类型创建 CKRecord

let rambo = Person(...)

do {
   let record = try CloudKitRecordEncoder().encode(rambo)
   // record is now a CKRecord you can upload to CloudKit
} catch {
   // something went wrong
}

CKRecord 解码 CustomCloudKitCodable 类型

let record = // record obtained from CloudKit
do {
   let person = try CloudKitRecordDecoder().decode(Person.self, from: record)
} catch {
   // something went wrong
}

最低部署目标

安装

Swift Package Manager

将 CloudKitCodable 添加到您的 Package.swift

dependencies: [
    .package(url: "https://github.com/insidegui/CloudKitCodable.git", from: "0.3.0")
]

手动

如果您不想使用 Swift Package Manager,您可以手动将 CloudKitCodable 集成到您的项目中,方法是复制其中的文件。