如何将字典变量放在单独的swift文件中?

时间:2017-02-25 09:58:26

标签: swift class variables

该项目需要一个大字典,所以我把它放在anohher swift文件中,使代码看起来干净。但我收到了“预期声明”错误。

class AA{

    var a:Dictionary<String,Array<String>> = [:]
    a["a"] = ["aa", "aaa"] // error: Expected declaration
    ...
    ...

}

我希望得到这样的结果:

let aa = AA.a

到现在为止,我必须将它添加到func中才能获得它。

class AA{

    func getVar()->Dictionary<String,Array<String>>{

        var a:Dictionary<String,Array<String>> = [:]
        a["a"] = ["aa", "aaa"]
        a["b"] = ["bb", "bbb"]

        return a
    }

}

解决这个问题的简单方法是什么?

@dasblinkenlight你的建议是从另一个viewController获取变量,它与我的有点不同。

2 个答案:

答案 0 :(得分:1)

问题不在于您在另一个文件中有字典,而是在方法之外进行了分配。

用声明替换作业将解决此问题:

class AA {
    static let a = [
        "a" : ["aa", "aaa"]
    ,   "b" : ["bb", "bbb", "bbbb"]
    ,   "c" : ["cc"]
    ]
}

现在您可以在其他课程中使用AA.a

答案 1 :(得分:0)

根据我的理解,您无法从另一个类访问本地变量,您只能使用该类方法访问它。

从另一个类访问var,

var someVariable: Type = xValue

现在创建该类的对象,您已声明变量&amp;访问它,

var getThatValue = yourViewControllerObject.someVariable

在同一类中访问var,

 self.yourVar

或者,

static let yourProperty = 0


ClassName.yourProperty  //  & for swift 3 it would be type(of: self).yourProperty

这个有趣的话题在以下链接中进行了很好的讨论,

Access variable in different class - Swift

Access static variables within class in Swift

在你的情况下,我认为你必须将var声明为方法范围的静态