如何访问嵌套在struct中的结构

时间:2015-03-29 06:32:56

标签: swift struct nested

我已经创建了一个嵌套在其中的另一个结构的结构,如下所示:

struct Theme {
    var ID: Int
    var name: String
    struct color {
        var tint: String
        var tintDisabled: String
        var accent: String
        var background: String
        var items: [String]
    }
}

我以为我能够解决"色彩"像这样的项目:

aTheme.color.tint

aTheme没有会员"color"

我怎样才能获得它?或者这只是不行,我应该使用不同的结构?

3 个答案:

答案 0 :(得分:15)

您创建的是嵌套类型 - color被声明为Theme类型中的类型,因此要创建color的实例你会用这种表示法:

let myColor = Theme.color( ... )

我认为您希望Theme实例的属性为color实例。为此,您不需要嵌套类型:

struct Color {
    var tint: String
    var tintDisabled: String
    var accent: String
    var background: String
    var items: [String]
}

struct Theme {
    var ID: Int
    var name: String
    var color: Color
}

注意:应始终使用初始上限声明类型。

答案 1 :(得分:9)

已更新:对于Swift 3.1,您可以将嵌套类型与Struct一起使用。

答案 2 :(得分:3)

也许是这样的?

struct Theme {
    var ID: Int
    var name: String  
    var clor = color()
}
struct color {
        var tint: String
        var tintDisabled: String
        var accent: String
        var background: String
        var items: [String]
}

然后aTheme.color.tint