Подтвердить что ты не робот

Как запросить createDate в CloudKit?

Я хочу получить последние X минут публичных/частных записей из 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
        }
    })
}

Спасибо.

4b9b3361

Ответ 1

Нашел свой вопрос. Вам нужно будет войти в панель 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