Ініціалізатор в swift, init () в прикладах
Для програміста дуже важливо розуміти що таке ініціалізація. І не тільки для iOS програмування. В об'єктно-орієнтованих мовах, як випливає з їх назви, робота відбувається з об'єктами, і для цієї роботи об'єкти потрібно створити, або форматувати. Я прекрасно розумію, що ні для кого «не відчинив Америку», написавши ці кілька рядків. Однак, зі свого досвіду скажу, що до кінця розібратися в процедурі ініціалізації в Swift досить складно.
У цій статті я спробую простими словами поговорити про особливості роботи методів init (). трохи торкнуся западають (fail) ініціалізатор init? (Деякі програмісти ще їх називають опциональнимі) і розповім про ініціалізації з файлу через aCoder і aDecoder
Почну з того, що для мови Swift встановлені цілком певні правила ініціалізації, правила відносин між ініціалізатор об'єктів, які були успадковані, правила виклику ініціалізаторів, якщо їх декілька у одного об'єкта. Ці правила описані в документації Apple, я навіть зустрічав їх російською мовою. Але приводити їх тут не буду з кількох причин:
- Чесно кажучи я на пам'ять і сам їх не пам'ятаю. Коли їх Новомосковскешь - все зрозуміло, але в документації описані всілякі варіанти, а в реальному житті немає такої програми де все це потрібно одночасно. При необхідності я лізу в документацію і застосовую їх.
- У даній статті я хочу описати не сухі правила, а прийнятний для розуміння підхід, який можна запам'ятати і застосовувати щодня.
Але! Раджу правила прочитати, тримати їх під рукою, тому що вони однозначно визначають вимоги до ініціалізації.
Так от стандартний метод написання ініціалізатор в Swift: