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

さて、特定のシナリオに必要なものが 2 つあります。

  1. すべてのレコードの Apple 生成フィールドである「Modified」にソートを追加します。
  2. CKQueryOperation を使用して CKQuery に LIMIT を課す必要があります。

コードは次のようになります。

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 に答える