NSFastEnumerationIteration.member Swift 3

У меня есть некоторые трудности с конвертацией моего приложения Swift 2.2 в Swift 3.0. У меня есть некоторые ошибки, и я пока не могу найти решение. В настоящее время моя худшая проблема с NSFastEnumerationIterationЯ пытаюсь получить записи из JSON, но с этой ошибкой я не могу. Это скриншот моего кода с проблемой:

Ошибка Swift 3.0 с NSFastEnumerationInstruction

2 ответа

Решение

В Swift 3 вам нужно указать тип объекта, поэтому укажите тип ваших данных. [[String:Any]],

if let dataArr = data as? [[String: Any]] {
    for dd in dataArr {
        //your code for accessing dd.
    }
}

Поскольку в цикле известно только то, что ваши переменные данные являются массивом, и больше ничего не знает, поэтому вам нужно также указать тип содержимого ваших переменных данных:

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
  }
}
Другие вопросы по тегам