NSDatePicker... CoreData хранит диапазон дат?
В моем приложении я сейчас использую два текстовых NSDatePicker
объекты для обозначения даты начала и окончания соответственно. Человек value
ключи имеют соответствующий Date
атрибут в моем хранилище основных данных.
В идеале я хотел бы перейти к одному графическому NSDatePicker
объект настроен в NSRangeDateMode
, Программно, я могу получить этот интервал, через [myDatePicker timeInterval]
,
Здесь обсуждается, как невозможно использовать привязки Какао напрямую с timeInterval
, но кто-нибудь знает часть недавней магии OSX API, которая сделает это возможным?
(Кладж будет по линии отдельного NSNumber
атрибут в хранилище Core Data, который будет установлен / получен в добавлении категории CD к родительской сущности NSManagedObject, который будет параллельно устанавливать / получать атрибут первичного значения времени - возможно, через отдельный NSNotification
.)
1 ответ
Нет простого способа сделать это, о котором я знаю. Вероятно, я бы сделал подкласс NSDatePicker, который имел бы наблюдаемый endDateValue
свойство, которое вы синтезируете сами. Примерно 20-30 строк кода, сложная часть будет искать то, что вы можете подкласс в NSDatePicker, который будет вызываться каждый раз, когда есть изменение, поэтому вы можете вызвать:
[self willChangeValueForKey:@“endDateValue”];
[self didChangeValueForKey:@“endDateValue”];
Вы не сможете легко связать это с Интерфейсным Разработчиком, также.
Другой вопрос: как вы хотите смоделировать этот диапазон в базе данных? Вы хотите разделить даты? Или дата и количество дней? Или вы хотите объединить их в словарь или пользовательский объект? Что бы вы ни делали на уровне базы данных, вы можете заставить свой подкласс NSDatePicker возвращать его и принимать его, чтобы он напрямую общался с базой данных (после подключения в коде).