2016-04-26 47 views
0

我得到這個錯誤:模糊使用下標,並且我不知道如何解決它。能否請你幫忙 ? 第一個是在該行:Swift,錯誤:模糊使用下標

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

它是關鍵訂閱還是索引訂閱?這就是*含糊*的含義。 – vadian

回答

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])。