2015-01-05 1 views
1

Я пытаюсь объявить переменную, которая хранит массив массивов. Каждый массив затем содержит объект Dictionary. Я попробовал кучу разных возможных объявлений, но компилятор не доволен ни одним из них.Создать изменяемый массив массивов, каждый из которых содержит словарь в swift?

Любое предложение?

Благодаря

Разъяснение о том, что мне было нужно:

Массив, который содержит массивы, где каждый из них содержит словари.

ответ

1

You Said

Каждый массив затем содержит словарь объект

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

в любом случае следующее код объявляет массив, содержащий словари (в коде предполагается, что в конечном итоге ваш словарь будет содержать строки, но вы можете изменить его на любой желаемый тип)

var myObj = Array<Dictionary<String,String>>() 

var dic1:Dictionary<String,String> = Dictionary<String,String>() 
dic1["A"] = "Alpha :A" 
dic1["B"] = "Alpha :B" 


var dic2:Dictionary<String,String> = Dictionary<String,String>() 
dic2["C"] = "Alpha :C" 
dic2["D"] = "Alpha :D" 

myObj.append(dic1) 
myObj.append(dic2) 

если вам нужен массив, содержащий массивы словарей будет почти такой же

var myObj = Array<Array<Dictionary<String,String>>>() 
+0

это работает. Я закончил тем, что сделал это необязательным, потому что мне нужно было это сделать: «var cars: [[Dictionary ]]?" – zumzum

+0

Компилятор, кажется, принимает ваше решение, похоже, эквивалентно Array >>(), я по-прежнему предпочитаю свой путь, возможно, потому, что я исхожу из java-фона, поэтому для меня это кажется естественным. –

+1

@zumzum: Вы можете даже сходить с ума и использовать 'var cars: [[[String: String]]] = []'. Я предлагаю вам пересмотреть вопрос о том, как сделать массив необязательным - он добавляет немного дополнительной работы, а пустой массив может иметь по существу то же значение, что и необязательное значение «nil». –

Смежные вопросы