Подтвердить что ты не робот

Как получить доступ к структуре, вложенной внутри структуры

Я создал структуру с другой структурой, вложенной внутри нее, например:

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".

Как я могу это понять? Или это просто не-go, и я должен использовать другую структуру?

4b9b3361

Ответ 1

То, что вы создали, является вложенным типом 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
}

Примечание. Типы всегда должны быть объявлены с начальными шапками.

Ответ 2

Обновлено: с помощью Swift 3.1 вы можете использовать вложенный тип с Struct.

Ответ 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