У меня есть класс под названием Trip
, у которого есть свойство NSDate
, которое называется date
. Я хочу убедиться, что свойство date
всегда имеет значение времени, установленное в начале дня. Я делаю это:Использование настраиваемого setter/getter и инициализация недвижимости для быстрой даты
- Созданием
NSCalendar
константы с именемcalendar
, так что я могу использовать методstartOfDayForDate
для сброса значения даты. - Создание настраиваемого метода настройки для свойства
date
, вызывающего метод startOfDayForDate.
Однако, я хочу инициализировать свойство date
к началу сегодняшней даты.
Код, который я до сих пор показан ниже.
class Trip {
private let calendar: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
var date: NSDate {
get {
return self.date
}
set {
self.date = calendar.startOfDayForDate(newValue)
}
}
}
Этот код а) не инициализирует свойство даты и б) (я обнаружил) результаты в бесконечном цикле, когда связующий называется. По дальнейшим исследованиям, я считаю, что настроенные геттеры/сеттеры строго рассчитаны, правильно?
Как добиться того, что я уже говорил ранее:
а) убедившись, что устанавливает для сброса date
имущества на начало дня и
б) инициализация date
свойства самого начала.. сегодняшней даты?
Когда вы говорите о начале дня, что вы имеете в виду? Вы хотите, чтобы он вернул начало сегодняшнего дня или начало календаря? – dunnmifflsys
Я хочу, чтобы время для моих дат обеспечивало правильные сопоставления дат. Поэтому я имею в виду начало дня (т. Е. Нулевой час, нулевые минуты, нулевые секунды). Я понимаю, что метод startOfDateForDate предоставит это. – whyceewhite