Как сохранить и загрузить значения даты NSDatePicker - PullRequest
0 голосов
/ 21 сентября 2018

Я очень новичок в разработке MacOs, поэтому извиняюсь, если это упрощенный вопрос:

У меня есть приложение, которое хранит и загружает данные в базу данных SQlite.

Представление имеет NSDatePickerв графическом режиме, и представление может быть либо в режиме «добавления», либо в режиме «редактирования», т. е. добавления, извлечения и обновления данных из SQlite

. В другом представлении есть NSTableView, где один из столбцов - это дата, которую я хочузагрузить из SQlite в столбец.

У меня вопрос, какое свойство datePicker мне следует сохранить - datePicker.stringValue или datepicker.dateValue?

Если это .stringValue, я могу просто загрузить его, когдаотображение datePicker в представлении 'edit'?

Если это .dateValue, как мне получить значение для tableView?(использовать NSDateFormatter?)

SQlite не имеет типа даты, поэтому я использую текстовое поле для хранения даты

1 Ответ

0 голосов
/ 22 сентября 2018

Преобразование даты в строку и обратно является грязным и несколько хрупким.Вместо этого я предлагаю сохранить его как значение с плавающей запятой.

Чтобы преобразовать дату в двойное использование:

let interval = aDate.timeIntervalSinceReferenceDate

(где aDate - объект Date, а interval представляет собой Double, aka a TimeInterval)

И наоборот, для преобразования значения с плавающей запятой обратно в Date:

let aDate = Date(timeIntervalSinceReferenceDate: interval)

Вы должны быть в состоянии сохранить полученные interval значение с плавающей точкой в ​​вашей базе данных SQL.Используйте двойную точность для значения с плавающей запятой.

...