72

エンティティのインスタンスを初期化すると、エラーが発生しますVariable used within its own initial value

エラーをスローするコードは次のとおりです。

class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
    {
        let word = WordDefinition(word: word, language: language)

エラーはword変数を指しています。

WordDefinition クラスは次のとおりです。

class WordDefinition {
    let word: String
    let language: Language

    init(word: String, language:Language)
    {
        self.word = word
        self.language = language
    }
}

このエラーはどういう意味ですか?

4

4 に答える 4

78

という名前の定数を宣言しword、同じ名前の引数を使用して初期化しようとしています。コンパイラは、引数を使用する代わりに、宣言されたばかりの定数を使用して独自の初期値を割り当てようとします。

于 2014-06-05T02:27:28.000 に答える
22

テキストのラップ解除中にifを見逃したときに同じエラーに直面しました。

ここに画像の説明を入力

上記の問題が解決された場合は追加します。

ここに画像の説明を入力

于 2016-11-25T06:08:38.820 に答える
11

word関数内のパラメーターと同じ名前の定数を再定義しています

class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
    // same name as the parameter here
    let word = WordDefinition(word: word, language: language)
}
于 2014-06-05T02:31:23.807 に答える
7

スコープ内で呼び出される関数パラメーターがありword、同じ名前の定数を作成しようとしています。定数以外の名前を付けますword

于 2014-06-05T02:27:18.433 に答える