
168
|
第
5
章
5.11
向
CloudKit
数据库中添加记录
问题
你想将数据保存到
CloudKit
数据库。
解决方案
创建一个
CKRecord
类型的实例,通过它的
setObject(_, forKey:)
方法来填充数据,
然后用数据库对象的
save
方法保存数据。
在创建
CKRecord
实例时,需要指定它的类型。记录的类型是一个简单字符串,这
个字符串相同,则表明这种记录的类型是相同的。
创建好一个
CKRecord
对象之后,你可以向它的字段插入信息,它的字段是通过字
符串形式的
key
来进行索引的。
相比较于这种硬编码字符串的方式,更好的方式是使用
Swift
语言特性,如枚举,
这样编译器就可能发现你在输入中的错误。
举个简单例子,假设你想保存一段纯文本到
CloudKit
。那么我们可以创建一种记录
类型叫作
Note
,相对应的
key
则叫作
content
:
enum NoteRecordKey : String {
case contents
}
let NoteRecordType = "Note"
这样,你就可以创建你的
CKRecord
对象,向它填充数据,然后保存到数据库。
当你调用
save
方法时,你可以在操作完成时提供一个闭包。这个闭包接收两个参
数:一个是所保存的
CKRecord
,另一个是一个
Error
。这两个参数都是可选的,它
们只会有一个是有值的(另一个则是空)。如果闭包接收到的参数中
CKRecord
有值,
说明保存成功;如果
Error
有值,则说明保存不成功:
func saveNewMessage(text: ...