微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

致命错误:无法比较属于不同集合的索引:

如何解决致命错误:无法比较属于不同集合的索引:

遍历SwiftyJSON对象的内容时遇到一个奇怪的错误

我初始化对象并传递给将JSON转换为适合POST请求的字典的函数

var routineForUpload:JSON = [:]
    
routineForUpload["Make"] = JSON("")
routineForUpload["Model"] = JSON("")
routineForUpload["EndYear"] = JSON("")
routineForUpload["StartYear"] = JSON("")
doPostOperation(routineForUpload)

func doPostOperation(_ inputJSON:JSON){
    ....
    var post = [String: String]()
    for (key,subJson):(String,JSON) in inputJSON { //<-- ** Error appears here **
        post[key] = subJson.stringValue
    }
    .... 
}

当我用三个属性初始化对象时,一切正常,当我增加到四个时,应用崩溃的原因是:

致命错误:无法比较属于不同集合的索引:

当我跟踪错误时,它指向SwiftyJSON.swift中的此函数

public func ==(lhs: JSONIndex,rhs: JSONIndex) -> Bool
{
    switch (lhs,rhs)
    {
    case (.array(let left),.array(let right)):
        return left == right
    case (.dictionary(let left),.dictionary(let right)):
        return left == right //<- ** Error appears here **
    case (.null,.null): return true
    default:
        return false
    }
}

我猜这与检查迭代是否完成有关,但是我有点卡住了

解决方法

我似乎已经通过使用

解决了该问题
for (key,subJson):(String,JSON) in inputJSON.dictionaryValue {

代替

for (key,JSON) in inputJSON {

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。