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 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?
word
?Antworten:
Sie deklarieren eine Konstante mit dem Namen
word
und 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.quelle
Durch Hinzufügen, falls oben behoben.
quelle
Sie definieren eine Konstante neu
word
, die denselben Namen wie ein Parameter in Ihrer Funktion hatclass func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition { // same name as the parameter here let word = WordDefinition(word: word, language: language) }
quelle
Sie haben einen Funktionsparameter
word
im Gültigkeitsbereich und versuchen, eine Konstante mit demselben Namen zu erstellen. Nennen Sie Ihre Konstante etwas anderes alsword
.quelle