我收到此错误:使用下标的模糊,我不知道如何解决它。能否请你帮忙 ? 第一个是在这一行:
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
}
}
}
非常感谢,
答案 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]
以外的其他类型。