Swift,错误:下标含糊不清

时间:2016-04-26 14:33:11

标签: json swift subscript

我收到此错误:使用下标的模糊,我不知道如何解决它。能否请你帮忙 ? 第一个是在这一行:

  

next = next [sub]

以下是代码:

public subscript(path: [SubscriptType]) -> JSON {
    get {
        if path.count == 0 {
            return JSON.nullJSON
        }

        var next = self
        for sub in path {
            next = next[sub]
        }
        return next
    }
    set {

        switch path.count {
        case 0: return
        case 1: self[path[0]] = newValue
        default:
            var last = newValue
            var newPath = path
            newPath.removeLast()
            for sub in Array(path.reverse()) {
                var previousLast = self[newPath]
                previousLast[sub] = last
                last = previousLast
                if newPath.count <= 1 {
                    break
                }
                newPath.removeLast()
            }
            self[newPath[0]] = last
        }
    }
}

非常感谢,

1 个答案:

答案 0 :(得分:0)

您需要告诉编译器self是什么数据类型,例如:

var next = self as? [String]

var next = self as? [String:AnyObject]

如果您不确定是否需要执行分支条件,例如

if let next = self as? [String] 
     { // foo } 
else if let next = self as? [String:AnyObject] 
     { // bar } 

(我不确定self到底是哪种类型,您可能需要除[String][String:AnyObject]以外的其他类型。