0

我很难将我的 Swift 2.2 应用程序转换为 Swift 3.0。我有一些错误,我还没有找到解决方案。目前,我最糟糕的问题是NSFastEnumerationIteration,我尝试从 JSON 获取记录,但由于这个错误我不能。这是我的代码有问题的屏幕截图:

NSFastEnumerationInteration 出现 Swift 3.0 错误

4

2 回答 2

1

在 Swift 3 中,您需要指定对象的类型,因此将数据数组的类型指定为[[String:Any]].

if let dataArr = data as? [[String: Any]] {
    for dd in dataArr {
        //your code for accessing dd.
    }
}
于 2016-09-25T13:08:18.973 回答
0

For in 循环只知道您的变量 data是一个数组,不知道其他任何内容,因此您还需要提供变量 data内容的类型

let dataToParse = dataweneed.data(using: String.Encoding.utf8.rawValue)!
let jsonOptions = [JSONSerialization.ReadingOptions.mutableContainers]
let data = try JSONSerialization.jsonObject(with: dataToParse, options: jsonOptions)

// now For in loop would know that you
// could have an array of dictionaries
if let data = data as? [[String: Any]] {
  for dd in data {
    // your code
  }
}
于 2016-09-26T12:13:47.497 回答