Ваша структура неверна.У вас есть это:
struct DailyEvents {
private var mappedEvents: [NSDateComponents: [OCKCarePlanEvent]]
// ...
}
Итак, у вас есть приватный словарь, который отображает OCKCarePlanEvent на компоненты даты (так что, я полагаю, вы можете быстро просматривать события по дням), ноу вас есть публичные методы, которые требуют от вызывающей стороны передавать и событие и компоненты данных.По сути, это означает, что вы ожидаете, что все иначе выполнят сопоставление для вас!
Это неправильно.Это ваше отображение (вы, структура).Вам нужен способ принять событие, чистое и простое, и отобразить его самостоятельно , как часть структуры, чтобы поместить его в нужное место в словаре, что бы это ни значило.Не каждая остальная работа по поддержанию словаря.Это ваша работа (вы, структура).
Когда вы начнете думать о своей структуре таким образом, правильно инкапсулируя, ее публичный API начнет становиться на свои места.