Как получить доступ к структуре, вложенной внутри структуры
Я создал структуру с другой структурой, вложенной внутри нее, например:
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, и я должен использовать другую структуру?
Ответы
Ответ 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