这个项目实现了 CloudKitRecordEncoder
和 CloudKitRecordDecoder
,允许自定义数据类型自动转换为/从 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
}
将 CloudKitCodable 添加到您的 Package.swift
dependencies: [
.package(url: "https://github.com/insidegui/CloudKitCodable.git", from: "0.3.0")
]
如果您不想使用 Swift Package Manager,您可以手动将 CloudKitCodable 集成到您的项目中,方法是复制其中的文件。