Подтвердить что ты не робот

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)
                        }

                }
            }
        }
    } 
4b9b3361

Ответ 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
   }
 }