2014-06-05 8 views
41

Wenn ich eine Instanz einer Entität initialisiere, erhalte ich den Fehler Variable used within its own initial value.Swift-Fehler: Variable innerhalb ihres eigenen Anfangswerts verwendet

Hier ist der Code wirft die Fehler:

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

Die Fehlerstellen an dem word Variable. 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 bedeuten?

+1

Vielleicht sollten Sie nicht das Objekt 'word' nennen? – meda

Antwort

48

Sie deklarieren eine Konstante namens word und versuchen, das Argument mit dem gleichen Namen zu verwenden, um es zu initialisieren. Der Compiler versucht, die gerade deklarierte Konstante zu verwenden, um seinen eigenen Anfangswert zu verwenden, anstatt das Argument zu verwenden.

4

Sie haben einen Funktionsparameter namens word im Geltungsbereich und Sie versuchen, eine Konstante mit demselben Namen zu erstellen. Benennen Sie Ihre Konstante etwas anderes als word.

8

Sie sind ein konstantes word neu zu definieren, die den gleichen Namen als Parameter in Ihrer Funktion oben Ausgabe

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

I have faced same error when missing out if while unwrapping the text .

enter image description here

Durch das Hinzufügen, wenn aufgelöst hat.

enter image description here

+3

Danke, hatte den gleichen dummen Fehler und konnte es nicht sehen: P –