iOS開発の学習を始めた初学者が、学習をしていく道中で出会ったエラーなどを備忘録的に残していきます。
※この記事は初学者のアウトプットを目的としており、個人的な理解によるものなので、誤った解釈を招く可能性がありますことをご承知下さい。誤りがある場合はご指摘いただければ都度修正させて頂きます。
なぜ残すのか?
入門書にて学習をしている際、それなりの数のエラーに遭遇しました。しかし入門書では「エラーが出ますがページを進めると解消しますので問題ありません」といった文言によりスルーされるケースが多いように見受けられました。
エラー表示なんてそんなもの、と言われたらそれで終わりなのですが、放置しているみたいで何となく気持ち悪かったので以下をノートしていくことにしました。
- なぜエラーが表示されているのか?
- 解消方法
- 上記が分からない場合は、せめて直訳だけでも
これらを残して、同じエラーに出会った時にイチから調べ直す労力を少しでも減らせればと考えています。
学習初めは単なる日本語訳だけが多くなるとは思いますが、理解していくたびに内容更新していきたいと思います。
Cannot use instance member 'hoge' within property initializer; property initializers run before 'self' is available
直訳
エラー文をざっくり直訳してみると、"プロパティが初期化されていなくてインスタンスのメンバが使用できないよ。"という感じ。
原因
クラスの定義をしていないのにインスタンスにアクセスしようとしていること。
解説
menberは値に紐づく定数や変数のことで、インスタンスが持つプロパティにあたるといえます。
クラスを定義することによってインスタンスのプロパティやメソッドにアクセスできるようになるので、クラスの定義をせずにアクセスしようとするとエラーが出てしまう。
参考書籍等
swift実践入門(P34, 2章メンバー式)