2015-10-27 198 views
4
let json = JSON(response.result.value!) 

let things = json.array.map { jsonThing in   
    Thing()      
}! 

json.array返回一個數組JSON s。在致電map後,我最終得到一個單一的Thing。爲什麼我沒有Thing的新數組?將SwiftyJSON映射到陣列

回答

5

SwiftyJSON有兩種干將:可選和非可選。

非可選獲取者具有「... Value」名稱語法。

可選:

json.array 

非可選:

json.arrayValue 

要小心,雖然:如果您使用的非可選干將與零值,它會崩潰。如果該值可以爲零,則最好使用可選的吸氣劑,並使用if let(可選裝訂)或任何其他已知技術(可選鏈接,零合併等)安全解開包裝。

2

因爲json.array回報[JSON]?,不[JSON]

這樣你就Optional<[JSON]>單個實例稱爲.map而非Array<JSON>如您所期望。

你需要調用:

json.array?.map ...

+2

很好的解釋,但不像Eric D's那麼全面。 ;) –

+0

艱難的演出...... :) –