2016-04-19 5 views
0

Мне нужна ваша помощь. Я сделал массив, и когда я запускаю свое приложение на разных устройствах или симуляторах, этот массив сортируется по разным типам, но мне нужен тот же порядок на каждом устройстве. Как это сделать?Как отсортировать многомерный массив в swift?

var settings = [String: [ [String: String] ]]() 
    settings = [ "cards":[ ], "groups":[ ] ] 

    ... 

    for card in db.prepare(table.order(orderN.asc)) { 
     settings["cards"]?.append(["id":String(card[id]), "group_id":String(card[group_id]), "service":card[service], "bgcolor":card[bgcolor], "logoimg":card[logoimg]!, "balance_desc":card[balance_desc], "balance":"0.0", "balance_id":String(card[balance_id]), "uniqueID":card[uniqueID], "balance_currency":String(card[balance_currency]), "orderN":String(card[orderN])]) 
    } 

    ... 

    for group in db.prepare(table.order(orderN.asc)) { 
     settings["groups"]?.append(["name":group[name]!,"id":String(group[id]),"orderN":String(group[orderN])]) 
    } 

    ... 

Например, На первом устройстве

print(settings) // ["cards": [["orderN": "0", "bgcolor": "0.0, 0.0, 0.0, 1.0", "balance": "0.0", "logoimg": "example.com/images/img.png", "uniqueID": "00a2413f74f4a3f186e439a67057de67", "group_id": "2", "id": "1", "service": "servicename", "balance_desc": "Description", "balance_id": "1", "balance_currency": "1"]], "groups": [["orderN": "0", "name": "GroupName", "id": "2"]]] 

На втором устройстве

print(settings) // ["cards": [["orderN": "0", "uniqueID": "00a2413f74f4a3f186e439a67057de67", "service": "servicename", "id": "1", "bgcolor": "0.0, 0.0, 0.0, 1.0", "balance_currency": "1", "balance": "0.0", "group_id": "2", "logoimg": "example.com/images/img.png", "balance_id": "1", "balance_desc": "Description"]], "groups": [["id": "2", "orderN": "0", "name": "GroupName"]]] 

Спасибо за внимание.

+0

Что вы пытались до сих пор? – Lasse

ответ

0

Это потому, что settings не является Array, это Dictionary. Заказ пар ключ-значение в словаре не определен.

Если вам нужен какой-то конкретный заказ, вы должны переописать settings, вероятно, сделать их отдельно struct или class, потому что вы будете иметь трудное время, работая с вложенными словарями.

+0

Мне нужен одинаковый порядок на всех устройствах, другие вещи не имеют значения. –

+0

Хорошо, вы можете получить ключи своего словаря и отсортировать их. Например, 'settings [" cards "] [0] .keys.sort()'. И затем повторите эти ключи. –

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