Swift:解析对象数组

Him*_*dav 1 ios swift ios8

我有一个Contact可以拥有Address对象的对象.

class Contact {
    var firstName: String = ""
    var lastName: String = ""
    var middleName: String = ""
    var id: Int = -1
    var addresses: Array<Address> = []
Run Code Online (Sandbox Code Playgroud)

如何Addressjson字典中获取每个对象时对其进行初始化?

init(json: Dictionary<String, AnyObject>) {

        if let line1 = json["streetLine"] as? String {
            self.streetLine1 = line1
        }
        if let city = json["city"] as? String {
            self.city = city
        }
        if let state = json["state"] as? String {
            self.state = state
        }
        if let zip = json["zip"] as? Int {
            self.zip = zip
        }
Run Code Online (Sandbox Code Playgroud)

试过这样做:

if let addressMap = json["addresses"] as? Array<Dictionary<String, AnyObject?>> {
            for address as? Address in addressMap {
                addresses.append(address)
            }
        }
Run Code Online (Sandbox Code Playgroud)

Swi*_*y89 6

试试这个:

if let dictionaryArray = json["addresses"] as? Array<Dictionary<String, Anyobject?>> 
    for address in dictionaryArray {
        var address = Address(json: address)
        addresses.append(address)
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,您可以从json中获取Dictionarys列表,循环遍历它们,然后使用init函数将数据注入到类中.