Swift 3 JSON NSFastEnumerationIterator не имеет подписчиков
Im, использующий Swift 3 и Alamofire 4.0. Я могу распечатать весь ответ, но у меня возникают проблемы с циклом и печать каждого значения. Я получаю "Тип NSFastEnumerationIterator.Element" (он же "Any" ) не имеет элементов подписи, когда я пытаюсь распечатать "title" ниже. Любая помощь приветствуется.
Alamofire.request(url).responseJSON { response in
if let dict = response.result.value as? Dictionary<String, AnyObject> {
if let datas = dict["data"] as? NSArray{
for data in datas{
print("DEVELOPER: \(data)")
if let title = data["myTitle"] as? String{
print(title)
}
}
}
}
}
Ответы
Ответ 1
Просто используйте собственный Swift Array
. Используйте всегда Swift родные типы, если у вас нет абсолютно никакого выбора. NSArray
не хватает информации о типе, поэтому компилятор не может сделать вывод о том, что массив содержит словари.
if let datas = dict["data"] as? [[String:Any]] {
Ответ 2
Иногда вы хотите, чтобы ваши данные были структурированы, все, что вам нужно сделать, это проверить сам словарь, находясь в цикле, как показано ниже:
for apple in apples {
if let _ = apple as? [String:AnyObject] {
// do whatever you like here
}
}