Json 致命错误nsarray元素与swift数组元素类型匹配失败

Json 致命错误nsarray元素与swift数组元素类型匹配失败,json,swift,Json,Swift,此问题与已回答的问题相关 但还有一个问题 我试图解析一些JSON输入,并有以下两个类 class EndDiskMeridian:NSObject { var dispUcoefficients:Array<Double> var dispVcoefficients:Array<Double> var dispWcoefficients:Array<Double> init(dict: NSDictionary) {

此问题与已回答的问题相关

但还有一个问题

我试图解析一些JSON输入,并有以下两个类

class EndDiskMeridian:NSObject {
    var dispUcoefficients:Array<Double>
    var dispVcoefficients:Array<Double>
    var dispWcoefficients:Array<Double>

    init(dict: NSDictionary) {
        dispUcoefficients = dict["DispUcoefficients"] as Array<Double>
        dispVcoefficients = dict["DispVcoefficients"] as Array<Double>
        dispWcoefficients = dict["DispWcoefficients"] as Array<Double>
    }
}

class EndDisk:NSObject {
    var numberOfDivisions:Int!
    var meridians:Array<EndDiskMeridian>!

    init(dict:NSDictionary) {
        numberOfDivisions = dict["numberOfDivisions"] as Int
        meridians = dict["meridians"] as Array<EndDiskMeridian>
    }
}
问题是,当我从dict添加EndDiskMeridian时,它永远不会到达EndDiskMeridian类中的init函数

当我访问DispucEfficients时,我得到了致命错误nsarray元素在运行时未能匹配swift数组元素类型错误

当子午线包含双精度数组时,我应该如何设置子午线?

EndDiskMeridian不能存储在字典中,因此您必须自己构建一个子午线并将字典传递给它

以下代码适用于我在操场上的情况:

import Foundation

class EndDiskMeridian:NSObject {
    var dispUcoefficients:Array<Double>
    var dispVcoefficients:Array<Double>
    var dispWcoefficients:Array<Double>

    init(dict: NSDictionary) {
        dispUcoefficients = dict["DispUcoefficients"] as Array<Double>
        dispVcoefficients = dict["DispVcoefficients"] as Array<Double>
        dispWcoefficients = dict["DispWcoefficients"] as Array<Double>
    }
}

class EndDisk:NSObject {
    var numberOfDivisions:Int!
    var meridians:Array<EndDiskMeridian> = []

    init(dict:NSDictionary) {
        numberOfDivisions = dict["numberOfDivisions"] as Int
        let meridians = dict["meridians"] as NSArray
        for subdict in meridians {
            let endDiskMeridian = EndDiskMeridian(dict: subdict as NSDictionary)
            self.meridians.append(endDiskMeridian)
        }
    }
}

let dict = ["EndDisk" : ["numberOfDivisions": 2, "meridians": [["DispUcoefficients": [1.0, 2.0], "DispVcoefficients": [3.0, 4.0], "DispWcoefficients": [5.0, 6.0]]]]]

let endDisk = EndDisk(dict: dict["EndDisk"]!)