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

Mat*_*ick 20 struct nested swift

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

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]
    }
}
Run Code Online (Sandbox Code Playgroud)

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

aTheme.color.tint
Run Code Online (Sandbox Code Playgroud)

但是aTheme没有会员"color".

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

Nat*_*ook 17

您创建的是嵌套类型 - color类型中声明为Theme类型,因此要创建实例,color您将使用此表示法:

let myColor = Theme.color( ... )
Run Code Online (Sandbox Code Playgroud)

我认为你想要一个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
}
Run Code Online (Sandbox Code Playgroud)

注意:应始终使用初始大写声明类型.


lee*_*lee 9

更新:Swift 3.1您可以使用嵌套类型Struct.