当我获取包含字符串(或其他)字段的记录时,它需要不到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)
    }


但是,当此记录类型包含CKAset时,查询时间将至少达到3秒。当我要加载100kb的图像时,这是不可接受的。将资产用作参考并从那里加载资产时,情况相同。我该如何加快查询包含资产的记录的速度,或者是否有其他方法可以更有效地存储资产?

最佳答案

使用一项操作并设置服务质量:

CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query];

queryOperation.qualityOfService = NSQualityOfServiceUserInitiated;


如果未设置qualityOfService,则将获得背景级别,并且速度会很慢。

10-05 19:35