3

我想知道如何从 CloudKit 表中获取第一条记录。例如,我有一个“类”表,我只想获取上次修改的类,而不是像现在这样获取所有类:

let pred = NSPredicate(format: "Students CONTAINS %@", studentRecord)
var query = CKQuery(recordType: "Class", predicate: pred)
publicDB.performQuery(query, inZoneWithID: nil) {
    records, error in
    if error != nil {
        println("\(error)")
    } else {
        if records.count > 0 {
            for record in records {
                println("\(record)")
            }
        }
    }
}
4

1 回答 1

4

好吧,您的特定场景需要两件事。

  1. 在“Modified”上添加排序,这是 Apple 在每条记录上生成的字段。
  2. 您需要使用 CKQueryOperation 对 CKQuery 施加限制。

您的代码应如下所示:

let pred = NSPredicate(format: "Students CONTAINS %@", studentRecord)
var query = CKQuery(recordType: "Class", predicate: pred)
let sort = NSSortDescriptor(key: "Modified", ascending: false)
query.sortDescriptors = [sort]
var queryOperation = CKQueryOperation (query: query)
queryOperation.resultsLimit = 1
queryOperation.recordFetchedBlock = {
    record in
    println("\(record)")
}
queryOperation.queryCompletionBlock = {
    queryCursor, error in
    if error != nil {
        println("\(error)")
    }
}
publicDB.addOperation(queryOperation)
于 2015-08-08T00:52:41.780 回答