NSDatePicker CoreData хранит диапазон дат?

В моем приложении я в настоящее время использую два текстовых объекта NSDatePicker для обозначения даты начала и окончания соответственно. Отдельные ключи value имеют соответствующий атрибут Date в моем хранилище основных данных.

В идеале я хотел бы перейти к одному графическому объекту NSDatePicker, настроенному в NSRangeDateMode. Программно я могу получить этот интервал через [myDatePicker timeInterval].

здесь обсуждается, как это невозможно использовать привязки Cocoa напрямую с timeInterval, но кто-нибудь знает о недавнем волшебстве API OSX, которое сделает это возможным?

(Кладж будет соответствовать строкам отдельного атрибута NSNumber в хранилище CoreData, который будет установлен/получен в категории CD в дополнение к родительскому объекту NSManagedObject, который будет параллельным набору/получению основного атрибута значения времени - возможно, через отдельный NSNotification.)


person zzyzy    schedule 15.01.2014    source источник


Ответы (1)


Я не знаю простого способа сделать это. Что я, вероятно, сделал бы, так это сделал бы подкласс NSDatePicker, у которого было бы наблюдаемое свойство endDateValue, которое вы синтезируете сами. Должно быть около 20-30 строк кода, сложная часть будет заключаться в том, чтобы найти то, что вы можете подклассировать в NSDatePicker, который будет вызываться каждый раз при изменении, поэтому вы можете вызвать:

[self willChangeValueForKey:@“endDateValue”];
[self didChangeValueForKey:@“endDateValue”];

Вы также не сможете легко связать это в Interface Builder.

Другой вопрос, как вы хотите моделировать этот диапазон в базе данных? Вы хотите разделить даты? Или дату и количество дней? Или вы хотите объединить их в словарь или пользовательский объект? Что бы вы ни решили делать на уровне базы данных, вы можете заставить свой подкласс NSDatePicker возвращать и принимать его, чтобы он напрямую общался с базой данных (после подключения в коде).

person Wil Shipley    schedule 16.01.2014