2016-10-16 4 views
1

Я запускаю программу Xcode 8/Swift 3, извлекающую данные из базы данных firebase. Я добавляю «Бренды» в «Магазин».Как получить доступ к вложенным данным NSDictionary из FireBase

Вот что выглядит как данные:

NSDictionary Screenshot

Я могу получить доступ ко всем «корень» данные, такие как местность и магистраль, используя следующий код.

let storeName = value["StoreName"] as! String 
let subThouroughfare = value["subThouroughfare"] as! String 
let thouroughfare = value["Thouroughfare"] as! String 
let administrativeArea = value["administrativeArea"] as! String 

Я не уверен, как получить доступ к внедренным данным, и в конечном итоге будет более одного ключ «Brand» с 4 значения структурировано как таковые:

$StoreKey: 
    brands: 
     $brandKey1: 
      Value1: String 
      Value2: String 
      Value3: String 
      Value4: String 
     $brandKey2: 
      Value1: String 
      etc... 

До сих пор у меня есть Struct установка как следующие, и мне нужно будет запросить бренд от бренда части таблицы:

var ProductList = [storeStruct]() 
struct BrandStruct{ 
    let BrandKey: String 
    let BrandName: String 
    let Value1: String 
    let Value2: String 
    let Value3: String 
    let Value4: String 
} 

Что является лучшим способом, чтобы получить на этих данных и структурах его в годный к употреблению массива, так что я могу заполнить таблицу ? Или я должен продолжать пытаться запросить Firebase, пока не получу что-то, что я могу использовать?

Спасибо за помощь!

+0

Я не уверен, как погрузиться глубже в словарь. Прямо сейчас я извлекаю данные из первого слоя словаря, но я не уверен, как получить бренд Key и значения. – JpeckStL

+0

Реструктурируйте и переформулируйте свой вопрос с помощью своего фактического запроса, ваш вопрос неясен, удалите ненужные данные и включите свою фактическую структуру JSON. – Dravidian

+0

Хорошо, я думаю, что я понимаю вопрос. Посмотрите, полезен ли вам мой ответ. – matt

ответ

0

Начинать с получения let brands = value["brands"] as! NSDictionary, полностью параллельно тому, что вы уже делаете. Теперь запросите brands.allKeys; это массив ключей от бренда. Для каждого ключа вы можете запросить brands[thisKey] as! NSDictionary, и вы вернете словарь, содержащий четыре значения, введенные по умолчанию: "Val1", "Val2", "Val3" и "Val4". (Опять же, если имена и количество этих ключей могут различаться, allKeys расскажет вам, что они собой представляют.)

+0

Хорошо, я вижу, где вы собираетесь с этим, и я, кажется, добиваюсь прогресса. Спасибо за вашу помощь. Как только я закончу программирование своего блока, я дам вам знать. – JpeckStL

+0

Отлично, спасибо. Я старался держать его как можно проще; в реальной жизни я бы выбрал '[String: Any]' вместо NSDictionary, и тогда я использовал бы «ключи» для получения ключей, но в данном случае это не имеет большого значения. – matt

+0

Это сработало. Я смог вытащить все значения из добавления в массив. Благодарю. – JpeckStL