Schneller Fehler: Variable, die innerhalb ihres eigenen Anfangswertes verwendet wird


71

Wenn ich eine Instanz einer Entität initialisiere, wird der Fehler angezeigt 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 wordVariable.

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?


1
Vielleicht solltest du das Objekt nicht aufrufen word?
Meda

Antworten:


74

Sie deklarieren eine Konstante mit dem Namen wordund versuchen, das gleichnamige Argument zum Initialisieren zu verwenden. Der Compiler versucht, die gerade deklarierte Konstante zu verwenden, um einen eigenen Anfangswert zuzuweisen, anstatt das Argument zu verwenden.


22

Ich habe denselben Fehler konfrontiert , wenn verpassten wenn während der Text auszupacken.

Geben Sie hier die Bildbeschreibung ein

Durch Hinzufügen, falls oben behoben.

Geben Sie hier die Bildbeschreibung ein


4
Danke, hatte den gleichen dummen Fehler und konnte ihn nicht sehen: P
Roland T.

11

Sie definieren eine Konstante neu word, 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)
}

5

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.