向 Swift 中的 [String:Array<NSDictionary>] 添加元素时出错

Error in adding an element to [String:Array<NSDictionary>] in Swift

我的 model 中有一个 属性 类型:[String:Array<NSDictionary>]。 我想循环添加元素。所以这就是我所做的:

 for var k=0;k<body.count;k++ {
   var dict=body[k] as NSDictionary
   if(k==0) {
      self.model.data[i]!=[dict]
   }
   else {
      self.model.data[i]!.append(dict)
   }
}

执行此操作时,出现以下错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

构造函数将model.data初始化为data=[String:Array<NSDictionary>]()

请帮助。提前致谢。

问题可能是当您将 [dict] 分配给它时,您正在展开 self.model.data[i]。我假设你在 data[i] 还没有价值的情况下这样做。所以强制解包会导致一个空指针,从而导致崩溃。

试试这个:

for var k=0;k<body.count;k++ {
   var dict=body[k] as NSDictionary
   if(k==0) {
      self.model.data[i]=[dict]
   }
   else {
      self.model.data[i]!.append(dict)
   }
}

尽管这假定 self.model.data[i] 存在于 k 不等于 0 的情况。我不确定这是否正确,您提供的信息不够详细。

认为你想做的是:

for var k = 0; k < body.count; k++ {
   var dict = body[k] as NSDictionary
   if self.model.data[i] == nil {
        self.model.data[i] = []
   }
   self.model.data[i]!.append(dict)
}