Lorsque j'initialise une instance d'entité, l'erreur Variable used within its own initial value
.
Voici le code générant l'erreur:
class func buildWordDefinition (Word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
let Word = WordDefinition(Word: Word, language: language)
L'erreur pointe sur la variable Word
.
Voici la classe WordDefinition:
class WordDefinition {
let Word: String
let language: Language
init(Word: String, language:Language)
{
self.Word = Word
self.language = language
}
}
Que signifie cette erreur ?
Vous déclarez une constante appelée Word
et essayez d'utiliser l'argument du même nom pour l'initialiser. Le compilateur essaie d'utiliser la constante qui vient d'être déclarée pour affecter sa propre valeur initiale, au lieu d'utiliser l'argument.
Vous redéfinissez une constante Word
qui porte le même nom qu'un paramètre dans votre fonction
class func buildWordDefinition (Word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
// same name as the parameter here
let Word = WordDefinition(Word: Word, language: language)
}
Vous avez un paramètre de fonction appelé Word
dans la portée et vous essayez de créer une constante du même nom. Nommez votre constante autre chose que Word
.