webentwicklung-frage-antwort-db.com.de

Swift Error: Variable, die innerhalb ihres eigenen Anfangswerts verwendet wird

Wenn ich eine Instanz einer Entität initialisiere, wird der Fehler Variable used within its own initial value.

Hier ist der Code, der den Fehler auslöst:

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

Der Fehler zeigt auf die Variable Word.

Hier ist die WordDefinition-Klasse:

class WordDefinition {
    let Word: String
    let language: Language

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

Was bedeutet dieser Fehler?

60
Francescu

Sie deklarieren eine Konstante mit dem Namen Word und versuchen, das gleichnamige Argument zu verwenden, um es zu initialisieren. Der Compiler versucht, die gerade deklarierte Konstante zu verwenden, um einen eigenen Anfangswert zuzuweisen, anstatt das Argument zu verwenden.

60
Cezar

Ich habe denselben Fehler festgestellt, wenn ich beim Auspacken des Textes , wenn , verpasst habe.

enter image description here

Durch Hinzufügen, falls dieses Problem behoben wurde.

enter image description here

16
Shrawan

Sie definieren eine Konstante Word neu, die denselben Namen wie ein Parameter in Ihrer Funktion hat

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

Sie haben einen Funktionsparameter mit dem Namen Word im Gültigkeitsbereich und versuchen, eine Konstante mit demselben Namen zu erstellen. Nennen Sie Ihre Konstante etwas anderes als Word.

4
gwcoffey