Один із найкращих коментарів до цього питання спеціально задає:
У всіх відповідях згадується однаковий тип ідеї .. але ніхто не пояснює, чому здається, що Інтерфейс Builder працює так само, якщо ви НЕ включаєте IBAction / IBOutlet у своє джерело. Чи є ще одна причина IBAction та IBOutlet чи це нормально, щоб їх залишити?
На це питання добре відповідає NSHipster:
IBAction
https://nshipster.com/ibaction-iboutlet-iboutletcollection/#ibaction
Ще в 2004 році (а може і раніше) IBAction вже не була необхідною для того, щоб метод, який помітив Interface Builder. Будь-який метод з підписом-(void){name}:(id)sender
буде видно на панелі торгових точок.
Тим не менш, багато розробників вважають корисним використовувати тип повернення IBAction у деклараціях методів, щоб позначити, що певний метод пов'язаний з дією. Навіть проекти, які не використовують розгортки / XIB, можуть скористатися IBAction для виклику методів цілей / дій.
IBOutlet:
https://nshipster.com/ibaction-iboutlet-iboutletcollection/#iboutlet
На відміну від IBAction, IBOutlet все ще потрібен для підключення властивостей у коді з об'єктами на Storyboard або XIB.
З'єднання IBOutlet зазвичай встановлюється між переглядом або елементом управління та його керуючим контролером перегляду (це часто робиться на додаток до будь-яких IBActions, на які контролер перегляду може бути націлений, щоб виконати відповідь). Однак IBOutlet може також використовуватися для викриття властивості верхнього рівня, як іншого контролера або властивості, до якої потім може бути доступний контролер перегляду посилань.