2017-03-10 68 views
-1

火力地堡字典數據我有一個火力地堡數據庫的結構是這樣的:檢索斯威夫特

results: { 
    A: [ 
    {data} 
    ], 
    B: [ 
    {data} 
    ], 
    C: [ 
    {data} 
    ], 
    .... 
} 

它是按字母順序排序值的字典。

我的問題是,什麼是在swift中檢索這些數據的最佳方法?

+0

您是否查看了Firebase指南[使用列表](https://firebase.google.com/docs/database/ios/lists-of-data),其中還包括排序? – Jay

回答

1

一般來說,最檢索Firebase數據的常見做法是將快照的值轉換爲Swift Dictionary這樣的:

let myRef = FIRDatabase.database().reference().child("results") 
myRef.observeSingleEvent(of: .value, with: { (snapshot) in 

    if !snapshot.exists() { 
     // handle data not found 
     return 
    } 

    // data found 
    let myData = snapshot.value as! [String: Any] // the key is almost always a String 

    // extracting data from the dictionary 
    let A = myData["A"] as! [String: Any] 
    let dataInA = A["anyChildOfA"] as! Double 

    // ... 

}) 

,如果該數據進行排序或不上火力地堡其實並不重要,檢索將是相同的複雜的

更新

你可以簡單地遍歷所有的字母來提取數據:

var extractedData = [[String: Any]]()  // array of Swift Dictionary 
for c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ".characters { 
    let temp = myData[String(c)] as! [String: Any] 

    extractedData.append(temp); 
} 

extractedData[0]將是數據,extractedData[25]將是Z中的數據。當然,這是假設你每個字母都有一個孩子。

+0

對於字母表中的每個字母,我必須硬編碼'let A = myData ['A']「 – Adam

+0

更新了答案!:-) – ThunderStruct

0

創建一個結構呈現 「數據」:

struct Data { 
    ... 
} 

創建包裝:

struct DataWrapper { 
    let data: [Data] 
} 

然後,創建一個新的模式:

struct ModelName { 
    results: [DataWrapper] 
}