2014-10-23 1 views
10

Я хочу получить последние X минут публичных/частных записей из CloudKit.Как запросить createDate в CloudKit?

Я пытался что-то в этом эффекте, но не удалось:

let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) 
    let predicate = NSPredicate(format: "creationDate > %@", date) 

Но это получит мне данные, но я не уверен, если я запрашивая все или просто какой-то шапкой:

let predicate = NSPredicate(value: true) 

Я хочу, чтобы иметь возможность запрашивать определенное количество времени. Возможно ли это, не делая логику сортировки создания на стороне клиента?

Вот полный код блока:

func fetchPublicData(completion: ((records:[AnyObject]) -> Void)!) 
{ 
    let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) 
    let predicate = NSPredicate(format: "creationDate > %@", date) 
    let query = CKQuery(recordType: "MyDataRecordType", predicate: predicate) 

    let container = CKContainer.defaultContainer() 
    let publicDb = container.publicCloudDatabase 

    publicDb.performQuery(query, inZoneWithID: nil, 
    { 
     (results, error) in 

     if error != nil 
     { 
      self.handleError(error) 
     } 
     else 
     { 
      // do stuff 
     } 
    }) 
} 

Спасибо.

+0

в сторону: 'Date (timeIntervalSinceNow: -60 * 120)' - это еще один способ создать дату, которую вы используете - «120 минут назад» – bshirley

ответ

18

Обнаружил мой собственный вопрос. Вам нужно будет войти в панель CloudKit и установить флажок.

enter image description here

После того, как он установлен, вы можете запросить по дате так:

let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) 
let predicate = NSPredicate(format: "creationDate > %@", date) 

Вот более подробный документ о том, какой NSPredicate вы можете использовать для CloudKit: https://developer.apple.com/documentation/cloudkit/ckquery#//apple_ref/doc/uid/TP40014043-CH1-SW8

+1

Удивительно, спасибо за сообщение! –

+0

Спасибо, я обещаю, что не буду использовать это, чтобы опросить CloudKit на таймере для модификацииDate, чтобы избежать установки всех этих неприятных обратных вызовов в зоне. –