When I'm initializing an instance of an entity I'm getting the error Variable used within its own initial value
.
Here is the code throwing the error:
class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
let word = WordDefinition(word: word, language: language)
The error points at the word
variable.
Here is the WordDefinition class:
class WordDefinition {
let word: String
let language: Language
init(word: String, language:Language)
{
self.word = word
self.language = language
}
}
What does this error mean ?
You are declaring a constant named word
, and trying to use the argument with the same name to initialize it. The compiler tries to use the just declared constant to assign its own initial value, instead of using the argument.
I have faced same error when missing out if while unwrapping the
text .
By adding if resolved above issue.
You are redefining a constant word
which has the same name as a parameter within your function
class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
// same name as the parameter here
let word = WordDefinition(word: word, language: language)
}
You have a function parameter called word
in scope and you're trying to create a constant with the same name. Name your constant something other than word
.