Json 致命错误nsarray元素与swift数组元素类型匹配失败
此问题与已回答的问题相关 但还有一个问题 我试图解析一些JSON输入,并有以下两个类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) {
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"]!)