Swiftの勉強中、以下のエラーが発生しハマったのでその原因と解決法を備忘録としてまとめておく。

Variable ‘xxx’ passed by reference before being initialized

問題となるコードがこちら。

var members: [Member]

let member01 = Member(context: context)
member01.name = "hogehoge"

members.append(member01) // エラー発生!

Memberクラスのインスタンスを、members配列に格納しようとしたところエラー発生。

どうやら原因は、1行目の配列の初期化の仕方に問題があるようだ。

正しい配列の初期化

正解はこちら。

var members: [Member] = []

またはこちらの書き方でもOK。

var members = [Member]()

どちらの記法でもエラーは解消された。