0

私は CloudKit を使用しており、「modificationDate」でレコードをフェッチしようとしていますが、最も古いものから結果の制限を設定します。たとえば、月、火、水、木に作成された 4 つのレコードがあり、そのうちの 2 つだけを選択すると、水、木ではなく、月、火のレコードが取得されます。以下は、修正しようとしているコードです。

func fetchRecentModified() {

   let predicate = NSPredicate(value: true)
   let sort = NSSortDescriptor(key: "votes", ascending: true)
   let query = CKQuery(recordType: "Dog", predicate: predicate)
   query.sortDescriptors = [sort]
   let operation = CKQueryOperation(query: query)
   operation.resultsLimit = recordFetchMax

   operation.recordFetchedBlock = { (record) in
       VoteQueue.sharedInstance.append(record)

   }

   operation.queryCompletionBlock = { (cursor, error) in
       dispatch_async(dispatch_get_main_queue()) {
           if error == nil {
               print("There is no error fetching records \(recordFetchMax)")
               print(VoteQueue.sharedInstance)
               API.shared.flagRecords(VoteQueue.sharedInstance)

           } else {
               print("There was a problem fetching the list of dogs please try again")
               print(error)
           }
       }
   }
   self.database.addOperation(operation)

}

NSSortDescriptor昇順を偽にフラグを立てるのと同じくらい簡単だと思いました。しかし、これは機能しませんでした (さらにテストした結果、選択したフィールドの値が 0 のレコードのみが返されることがわかりました)。

さらに、さまざまな述語比較を試してみましたが、役に立ちませんでした。何かご意見は?CloudKit を永遠にあきらめる準備ができています。

4

0 に答える 0