Как использовать NSPredicate с типом Date - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь сделать NSPredicate на основе даты ... Я пробовал это:

let datePredicate = NSPredicate(format: "due_date < %@", Date())

Я не уверен, но iir c, это работало раньше?

Теперь я получаю эту ошибку:

Тип аргумента 'Дата' не соответствует ожидаемому типу 'CVarArg'

Я пытался что-то подобное

... Date() as NSDate, но это тоже не удалось.

Как это решить?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Чтобы использовать текущую дату в качестве параметра предиката, просто создайте NSDate экземпляр

let datePredicate = NSPredicate(format: "due_date < %@", NSDate())

Для переменной даты вы можете использовать

aDate as NSDate

или

aDate as CVarArg

Если вы получили ошибку

'Дата?' не может быть преобразовано в NSDate

, тогда код не является реальным кодом, потому что и Date(), и NSDate() не являются обязательными.

0 голосов
/ 15 февраля 2020

вы должны привести тип оверлея Date обратно к его базовому аналогу NSDate:

let dueDate = Date()
let pred1 = NSPredicate(format: "due_date < %@", dueDate as NSDate)

проверить эту ссылку { ссылка }

...