2016-11-22 105 views
-2

我想從一個MySQL數據庫的信息,我有下面的代碼。我試圖使用其他頁面上發現的編輯,但我是編程新手,無法弄清楚我做錯了什麼。類型「任何」沒有標會員,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; 

} 

回答

0

如前所述非常非常往往基金會NSArray提供任何類型的信息,因此它並不能幫助雨燕在編譯所有。

在Swift 3編譯器必須知道所有下標對象的類型,否則你會得到錯誤。

爲了解決這個問題,首先聲明你的數據源數組爲Swift Array包含Swift Dictionary。這使得編譯器 - 並最終你 - 開心。

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

如果所有的字典中的值都是字符串,你甚至可以申報values[[String:String]]

其次施放反序列化線同類型:

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

PS:mutableContainers是斯威夫特沒用,通空options

側面說明:

即使在本地網絡不從遠程URL加載數據同步地經由Data(contentsOf:

相關問題