NSPredicate и CoreData - решите, является ли атрибут Date «сегодня» (или с 12 часов ночи до 12 часов ночи) на iOS.

Я использую NSFetchedResultsController и UITableViewController для заполнения UITableView из базы данных CoreData.

У меня есть объект NSDate , сохраненный в этом атрибуте Date с меткой startTime. Затем я пытаюсь получить только сегодняшние данные, используя NSPredicate , который выглядит следующим образом:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"startDate == %@",
                          todaysDate];

Я получаю нулевой результат. Я понимаю это, потому что объект NSDate просто хранит количество секунд или миллисекунд или что-то еще с 1 января 1970 года, верно? Таким образом, сравнение 1111111111111 и 1111111111112 в один и тот же день - это два разных NSDate объекта, которые не равны.

Итак, как можно было отформатировать NSPredicate так, чтобы он это делал? Я собираюсь угадать, что он создает два объекта NSDate : один, который находится в 12 часов ночи прошлой ночью, а другой - на 12 часов ночи сегодня, и сравним startDate и посмотрим, находится ли оно между этими двумя NSDate s.

Я новичок в NSPredicate , так как это можно сделать?

8
задан Kev 10 August 2012 в 23:46
поделиться