2016-11-22 5 views
-2

Ich versuche, Informationen aus einer MySQL-Datenbank zu erhalten, und ich habe den folgenden Code. Ich habe versucht, die Änderungen auf anderen Seiten zu verwenden, aber ich bin neu im Programmieren und kann nicht herausfinden, was ich falsch gemacht habe.Typ 'Any' hat keine tiefgestellten Mitglieder, indexPath

func get(){ 
    let url = URL(string: "http://192.168.157.134/Getdepartment.php") 
    let data = try? Data(contentsOf: url!) 
    values = try! JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSArray 
    tableView.reloadData() 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return values.count; 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SpecialCell 
    let maindata = values[indexPath.row] 
    cell.username.text = maindata["Username"] as? String 
    cell.password.text = maindata["Password"] as? String 
    cell.num.text = maindata["FavoriteNumber"] as? String 
    cell.info.text = maindata["Info"] as? String 
    return cell; 

} 

Antwort

0

Wie bereits erwähnt sehr sehr oft Foundation NSArray bietet keine Typinformationen, damit es nicht den Swift-Compiler überhaupt nicht helfen.

In Swift 3 muss der Compiler den Typ aller subskribierten Objekte kennen, sonst erhalten Sie Fehler.

Um das Problem zu lösen, deklarieren Sie zuerst Ihr Datenquellen-Array als Swift Array mit Swift Dictionary. Das macht den Compiler - und schließlich Sie - glücklich.

var values = [[String:Any]]() 

Wenn alle Wörterbuch Werte Strings sind, können Sie auch erklären values als [[String:String]]

Zweitens die Deserialisierung Linie auf die gleiche Art werfen:

values = try! JSONSerialization.jsonObject(with: data!, options: []) as! [[String:Any]] 

PS: mutableContainers ist in Swift nutzlos, übergeben leer options

Randnotiz:

Auch im lokalen Netzwerk laden Sie Daten von einer Remote-URL nicht synchron über Data(contentsOf:

Verwandte Themen