Я хочу расширить класс NSDate, чтобы я мог ссылаться на вторник каждой недели, в которой мы сейчас находимся, как на NSDate.
Я понимаю, что это можно сделать с помощью NSDateComponents. Пока у меня есть следующее:
extension NSDate {
var tuesday: NSDate {
let calendar = NSCalendar.currentCalendar()
let todaysDate = NSDate()
let weekdayComponents = calendar.components(.CalendarUnitWeekday | .CalendarUnitWeekdayOrdinal, fromDate: todaysDate)
weekdayComponents.weekday = 3
let returnTuesday = calendar.dateByAddingComponents(weekdayComponents, toDate: todaysDate, options: nil)
return returnTuesday!
}}
Я считаю, что CalendarUnitWeekday работает в системе на основе индекса (т.е. воскресенье = 1, суббота = 7), поэтому я устанавливаю для вторника требуемый день недели равным 3.
Однако при инициализации объекта NSDate и доступе к этому расширенному свойству «вторник» я получаю дату за месяц вперед.
(сегодняшняя дата - «26 августа 2015 г., 16:42») (дата вторника - «26 сентября 2015 г., 16:42»)
Что вызывает это повышение на месяц? Есть ли способ вернуть конкретную дату каждой недели, в которой мы находимся, путем расширения класса NSDate?
Спасибо