当我获取包含字符串(或其他字段)的记录时,它需要不到1秒的时间:
let query = CKQuery(recordType: "Messages", predicate: NSPredicate(format: "TRUEPREDICATE"))
NSLog("Started fetching")
self.publicDb.performQuery(query, inZoneWithID: nil) { (records, error) in
NSLog("Finished fetching")
print(records!.count)
}
但是,当此记录类型包含CKAsset时,查询的时间将至少为3秒。当我想加载100kb的图像时,这是不可接受的。当我将资产作为参考并从那里加载时,它是一样的。我该怎么做才能加快查询包含资产的记录,或者是否有其他方式以更有效的方式存储资产?
答案 0 :(得分:1)
使用操作并设置服务质量:
CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query];
queryOperation.qualityOfService = NSQualityOfServiceUserInitiated;
如果您没有设置qualityOfService,您将获得背景级别,但速度很慢。