2016-12-19 8 views
-2

У меня ошибка, и я не знаю, почему ... может кто-нибудь мне помочь? Я в отчаянии! Никакой другой пост не помог мне. Заранее благодарю за ваш ответ!Swift 3 и Xcode 8.2 - Неоднозначная ссылка на член «Подстрочный индекс»

PS: Я получаю ошибку только тогда, когда я пытаюсь запустить на моем Iphone

Image with Error

func parseJson() { 
    let username: String = UserDefaults.standard.value(forKey: "username")! as! String 
    let url=URL(string:"https://website.de") 
    do { 
     let allBetData = try Data(contentsOf: url!) 
     let allBet = try JSONSerialization.jsonObject(with: allBetData, options: JSONSerialization.ReadingOptions.allowFragments) as! [String : AnyObject] 


     if let arrJSON = allBet["bets"] as! [String : AnyObject]? { 
      for index in 0...arrJSON.count-1 { 



       let aObject = arrJSON[index] as [String : AnyObject]? 

       header.append(aObject["header"] as! String) 
       rowDescription.append(aObject["rowDescription"] as! String) 
       bodytext.append(aObject["bodytext"] as! String) 
      } 
     } 



     print("data loaded") 
     self.tableView.reloadData() 
    } 
    catch { 
     self.logout() 
    } 

} 
+0

Возможный дубликат [Неограниченная ссылка на членский индекс «при разборе json» (http://stackoverflow.com/questions/39427214/ambiguous-reference-to-member-subscript-when-parsing-json) – JAL

+2

Пожалуйста, напишите код вместо ссылки. – shallowThought

+0

Вы объявляете переменную как словарь, а затем используете эту переменную, как если бы это был массив. Это не работает *, как и ожидалось * ... // Опубликуйте код в своем вопросе, а не образ кода. – Moritz

ответ

2

Ok, это полностью фундаментальная и вы должны убедиться, что вы получите это.

Одна линия на время ...

if let arrJSON = allBet["bets"] as! [String : AnyObject]? { 

Вот вы говорите: «Я делаю то, что называется arrJSON, это словарь с строковыми ключами и любого рода ценности». До сих пор хорошо? Тогда вы ...

for index in 0...arrJSON.count-1 { 

«Я хотел бы, чтобы петля количество раз, что есть элементы» ...

let aObject = arrJSON[index] as [String : AnyObject]? 

»... и получить объект, который является ключевым является это номер ".

Вы понимаете проблему прямо сейчас?

+0

Спасибо! Это решение проблемы – KMax