2016-07-06 9 views
1

Быстрый вопрос. Предположим, например, что я хочу создать модель данных для следующего:Как получить доступ к значениям из вложенных словарей: Swift

Список, который заполняется продуктовыми магазинами, в которые я иду, а затем хранит дату каждый раз, когда я иду в какой-либо конкретный продуктовый магазин, и внутри каждого date, он сохраняет предметы, которые я приобрел.

Например:

   Costco -> June 1, 2016 -> Water 
            -> Beer 

        -> June 8, 2016 -> Hot dogs 
            -> Chips 

      Target -> June 1, 2016 -> Dish Soap 
            -> Shampoo 

        -> June 8, 2016 -> Bananas 
            -> Bagels 

Как лучше всего я хотел бы организовать это в модели данных?

Можно начать со следующими ?:

var dataModel = [String: [String: [String]]]() 

Используя этот словарь в словаре, я не могу понять, как получить доступ к массиву под любой момент «Продуктовый магазин -> Дата» Профиль ,

Отказ от ответственности: Я очень новичок в Swift, поэтому простите невежество. Я прочитал документацию Apple по словарям, и это не помогло.

+0

В качестве примечания обратите внимание на то, что ваша «модель данных» не будет сохраняться при запуске приложений b/n, потому что вложенные словари находятся только в памяти, а не на диске. – ghostatron

ответ

2

Да, со словарем словарей определенно возможно (хотя в этот момент вам может потребоваться использовать вместо этого класс или структуру).

Вы можете инициализировать его с помощью: var dataModel = [String: [String: [String]]]()

Доступ он хотел что-то вроде этого:

dataModel["Costco"]?["June 1, 2016"] //returns an optional of type String

Это сбруя

Хотя опять же, я бы определенно рекомендую вам посмотреть в создании struct, чтобы инкапсулировать эти данные. С помощью структуры вы можете создать свою собственную структуру GroceryStore для использования в качестве ключа, и вы можете использовать соответствующие объекты NSDate как ключи для второго слоя.

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

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