Я разрабатываю приложение для iOS, в котором я выбираю дату и время из календаря и даю возможность добавить событие в эту дату и время, а также предоставляю опцию повтора, если они хотят повторить это событие в течение определенного времени, напримережедневно / еженедельно / ежемесячно / ежегодно.А также я прошу дату, пока событие не повторится, чтобы предотвратить бесконечную проблему !!Когда пользователь сохраняет событие, я передаю флаг в соответствии с повторениями, такими как (0: никогда, 1 раз в день, 2 раза в неделю, 3 месяца, 4 года) и сохраняю все в базу данных с одной записью.
Теперь, когда я получаю данные из базы данных, я проверяю этот флаг и в соответствии с этим я заполняю события.
Я делал ежедневные повторы, как это:
let calendar = NSCalendar.current
let unitFlags = Set<Calendar.Component>([ .day])
let dateComponents = calendar.dateComponents(unitFlags, from: date!, to: lastDate!)
let dayCount = dateComponents.day
print(dayCount!)
while date! < lastDate! {
date = Calendar.current.date(byAdding: .day, value: 1, to: date!)!
print(date!)
}
и работает нормально.теперь, когда я перехожу на еженедельник и предполагаю, что выбрал дату 23 ноября 2018 , но когда я повторяю ее еженедельно я должен узнать, какой день тамв эту дату.а также я выбрал дату 21 января 2019 как последняя дата .так что теперь я хочу повторить это еженедельное событие, пока эта последняя дата не будет означать, что если дневное время в выбранную дату составляет ВОСКРЕСЕНЬЕ , тогда мне нужно все воскресенья до конечной даты.
Как я могу получить это или какие условия я должен поставить в этом коде, чтобы выполнить работу?
Заранее спасибо!