Зачем даты как строки сравнивать? Есть календарь, который умеет сравнивать даты
Ты вызываешь в коде презентера поле с категориями где-то ещё, кроме present categories?
Почему это проверка на ключ? Разве проверка на ключ не dict.keys.contains(<key>)?
Это ты и на наличие значения проверил и опционал заодно развернул разом?
Плох по сравнению с нативной разработкой или в принципе плох?)
А ты загрузил отладочные символы в crashlytics?
На 47 строке интерактора категории равны nil?
А он разве не по-умолчанию работает?
Мб просто модальное окно сделать?
Чуть подробней есть инфа?