web-dev-qa-db-ja.com

Swift Error:独自の初期値内で変数が使用されています

エンティティのインスタンスを初期化すると、エラー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
    }
}

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

60
Francescu

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

60
Cezar

テキストのアンラップ中にifを欠落させたときに同じエラーに直面しました。

enter image description here

上記の問題が解決された場合に追加することにより

enter image description here

16
Shrawan

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

class func buildWordDefinition (Word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
    // same name as the parameter here
    let Word = WordDefinition(Word: Word, language: language)
}
9
Rod

スコープにWordという関数パラメーターがあり、同じ名前の定数を作成しようとしています。定数にWord以外の名前を付けます。

4
gwcoffey