CKAssets慢慢地使用CKQuery

时间:2016-05-01 15:52:05

标签: ios performance icloud cloudkit ckasset

当我获取包含字符串(或其他字段)的记录时,它需要不到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的图像时,这是不可接受的。当我将资产作为参考并从那里加载时,它是一样的。我该怎么做才能加快查询包含资产的记录,或者是否有其他方式以更有效的方式存储资产?

1 个答案:

答案 0 :(得分:1)

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

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

queryOperation.qualityOfService = NSQualityOfServiceUserInitiated;

如果您没有设置qualityOfService,您将获得背景级别,但速度很慢。