Когда вы говорите, что набрали -3
, вы имеете в виду, что использовали эту строку?
[dateComps setDay:[dateComponents day] - 3];
Это на самом деле должно работать.
Кроме того, вы можете указать системе запускать любой следующий год, просто установив текущий год для компонентов даты. Вы можете найти текущий год так же, как вы нашли компоненты даты для pickerDate
.
После этого вы можете установить repeatInterval
локального уведомления на NSYearCalendarUnit
, чтобы оно срабатывало каждый год.