iPhone Core Data выборка даты манипуляции - PullRequest
2 голосов
/ 20 июля 2009

Я новичок в разработке для iPhone и использую Core Data для управления данными. Мои управляемые объекты имеют свойство creationDate, и мне нужен список всех отдельных дат в базе данных. Для уменьшения накладных расходов я установил

[fetchRequest setPropertiesToFetch: [NSArray arrayWithObject: @ "creationDate"]];

потому что это все, что нужно.

Я знаю, что могу установить [fetchRequest setReturnsDistinctResults: YES]; чтобы получить различные даты, но как я могу взять только часть даты NSDate в запросе на выборку?

спасибо,

Thomas

P.S. В SQL это будет выглядеть примерно так: SELECT DISTINCT DATE (creationDate) FROM events;

1 Ответ

4 голосов
/ 20 июля 2009

Под "частью даты NSDate" я предполагаю, что вы имеете в виду как отличное от времени? Вы не можете прямо выразить это в целях получения отличных результатов, если запись в магазине имеет закодированное время. То, что вы можете сделать, это разделить creationDate в вашей модели на два свойства, дату и время, и нормализовать все даты за один раз (или, если вас не волнует время, вы можете просто выбросить время). Если вам действительно нужно время, когда оно там, но вы можете выполнять запросы только по дате.

Если у вашей сущности есть собственный подкласс, вы можете сделать это, написав пользовательский установщик, который получает данные, извлекает компоненты через NSDateComponents и собирает их в дату через NSCalendar.

Да, похоже, что с датами должно быть проще, но нужно выбрать несколько обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...