2017-01-28 8 views
-3

Я пытаюсь получить следующий JSON ответ от сервера:Неоднозначное использование индекса в Json декодировании - Swift 2

[{"m", "OK"}] 

И я использовал следующий код, который прекрасно работает, когда я играю в тренажере, но когда я генерировать архив для загрузки в магазине яблоко он имеет ошибку

неоднозначного использование «подстрочный»

func funcao(completo:() -> Void, falha:() -> Void){ 
    let parametros = [ 
     "operacao" : "update", 
     "tabela" : "1" 
    ] 

    Alamofire.request(.POST, UrlServerPOST, parameters: parametros) 
     .responseJSON { response in 

      if let JSON = response.result.value { 
       print("JSON: \(JSON)") 

       if let item = JSON[0] as? [String: String] { //Error here 
        if let resp = item["m"] as? String { 
         print(resp) 
         if resp == "OK" { 
          completo() 
         } 
         else 
         { 
          falha() 
         } 
        } 
        else 
        { 
         falha() 
        } 
       } 
       else 
       { 
        falha() 
       } 
      } 
    } 
} 

Я пробовал несколько вещей, чтобы решить эту ошибку, но ничего не решил. Кто-нибудь знает, как это решить?

+0

У 'JSON' есть индексный оператор? Или вы должны сначала направить 'JSON' в' [[String: String]] '? – luk2302

+0

[[String: String]] не работает для меня либо @ luk2302 –

+0

Сообщите компилятору тип 'response.result.value' – vadian

ответ

1

Каждый объект JSON представляет собой либо словарь, либо массив. Вы должны сказать Swift, чтобы подстроить его ключом (как словарь) или с индексом integer (как массив). Похож JSON вот массив. Изменить эту строку:

if let JSON = response.result.value as? [AnyObject] { 
    // ... 
}