オブジェクトを初期化するイニシャライザ、init で始まるメソッドですね。 init とか initWithString とか。他言語でいうところコンストラクタ代わりです。 iOS開発している人なら、「指定イニシャライザ」 という単語は聞いたことある人多いと思いますが、これの意味と役割を理解せずに組んでいる人も多いのではないでしょうか? そしてイニシャライザではいくつか守ったほうがいいルールがあります。 3 Rules for initializers 結論から書くと、以下の3つルールをイニシャライザでは守ると効率的になります。 (1)必ず一つの指定イニシャライザを持つ(基本的に複数はナシ) (2)指定イニシャライザ以外のイニシャライザは、必ず指定イニシャライザ経由で初期化する (3)親クラスの指定イニシャライザは必ずオーバーライドする 理由はこの記事で説明します。(※長いです) clas
![イニシャライザが守るべき3つのルール - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/fcc7d38788064573b127f824192b55bd7ee4c569/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgyJUE0JUUzJTgzJThCJUUzJTgyJUI3JUUzJTgzJUEzJUUzJTgzJUE5JUUzJTgyJUE0JUUzJTgyJUI2JUUzJTgxJThDJUU1JUFFJTg4JUUzJTgyJThCJUUzJTgxJUI5JUUzJTgxJThEMyVFMyU4MSVBNCVFMyU4MSVBRSVFMyU4MyVBQiVFMyU4MyVCQyVFMyU4MyVBQiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9OTBiNWZiNjZiYWE4ZWJkYjRmYTA2OWY1ZjZiNmE2ZmM%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBuYW9kcm9pZCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MjM2NWM1MDIzMzQ1ZTNjMjdiOWNkYzc1OTczZThhNmI%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dbfaaa55545db46878f692ed968a13a4c)