72

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 ?

4

4 回答 4

78

您正在声明一个名为 的常量word,并尝试使用具有相同名称的参数来初始化它。编译器尝试使用刚刚声明的常量来分配它自己的初始值,而不是使用参数。

于 2014-06-05T02:27:28.000 回答
22

如果在展开文本时错过了相同的错误,我也遇到了同样的错误。

在此处输入图像描述

通过添加如果解决了上述问题。

在此处输入图像描述

于 2016-11-25T06:08:38.820 回答
11

您正在重新定义一个word与函数中的参数同名的常量

class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
    // same name as the parameter here
    let word = WordDefinition(word: word, language: language)
}
于 2014-06-05T02:31:23.807 回答
7

您有一个word在范围内调用的函数参数,并且您正在尝试创建一个具有相同名称的常量。将常量命名为word.

于 2014-06-05T02:27:18.433 回答