С вашей ошибки Expected declaration
, I ass умэ вы делаете, как:
struct Foo {
var dictionaryA = [
"a": "1",
"b": "2",
"c": "3",
]
var dictionaryB = [
"a": "4",
"b": "5",
"c": "6",
]
var myArray = [[ : ]]
myArray.append(dictionaryA) // < [!] Expected declaration
myArray.append(dictionaryB)
}
Это происходит потому, что you can place only "declarations" in the struct body и myArray.append(dictionaryA)
не декларация.
Вы должны сделать это где-то еще, например, в инициализаторе. Следующий код компилируется.
struct Foo {
var dictionaryA = [
"a": "1",
"b": "2",
"c": "3",
]
var dictionaryB = [
"a": "4",
"b": "5",
"c": "6",
]
var myArray = [[ : ]]
init() {
myArray.append(dictionaryA)
myArray.append(dictionaryB)
}
}
Но, как упоминалось @AirspeedVelocity, вы должны предоставляет более подробную информацию о myArray
или myArray
бы Array<NSDictionary>
который я думаю, вы не ожидаете.
Во всяком случае, правильным решением будет варьироваться в зависимости от того, что вы на самом деле пытаетесь сделать:
Может быть, а может и нет, что вы хотите что-то вроде:
struct Foo {
static var dictionaryA = [
"a": "1",
"b": "2",
"c": "3",
]
static var dictionaryB = [
"a": "4",
"b": "5",
"c": "6",
]
var myArray = [dictionaryA, dictionaryB]
}
Но я не знаю, , почему бы вам не просто:
struct Foo {
var myArray = [
[
"a": "1",
"b": "2",
"c": "3",
],
[
"a": "4",
"b": "5",
"c": "6",
]
]
}
Где код "структуры"? Отсканированный фрагмент выглядит хорошо и компилируется в порядке. – Bill