
存储数据
|
173
// 'record'
是一个
CKRecord
对象
//
读取一个字符值,如果是空值则转换为空字符串
let message = record.object(forKey: "contents") as? String ?? ""
//
读取一个
Date
类型,如果是空值则转换为当前日期
let date = record.object(forKey: "modifiedAt") as? Date ?? Date()
讨论
在查询数据库时,还可以指定排序。首先必须在排序字段上添加索引,步骤是一样
的,但
Index Type
修改为
Sortable
。然后,可以创建一个
SortDescriptor
,将它传
给
CKQuery
:
//
按修改日期排序
let sortDescriptor = NSSortDescriptor(key: "modificationDate",
ascending: false)
query.sortDescriptors = [sortDescriptor]
接收结果集的闭包可以在任何
Operation
队列运行,如果你需要更新
UI
,请让它在
主队列中运行。具体请参考
1.13
节。
5.13
从
CloudKit
数据库中删除记录
问题
你想从
CloudKit
数据库中删除一条记录。
解决方案
要删除记录,必须知道记录的
ID
。一种方法是先用查询获得你想删除的记录(参
考
5.12
节)。
一旦你获得记录
ID
,就可以调用
delete
方法,并传入要删除的记录 ...