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

How do I access a struct nested inside a struct

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

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]
    }
}

我想我可以这样处理 "tint" 项目:

aTheme.color.tint

但是aTheme没有成员"color"

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

可能是这样的?

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

你创建的是一个嵌套类型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
}

注意:类型应始终以首字母大写声明。

已更新:对于 Swift 3.1,您可以使用 Struct.

的嵌套类型