Swift3 类型';任何';没有下标成员,请单击XPath
我正在尝试从mysql数据库获取信息,我有以下代码。我曾尝试使用其他页面上的编辑,但我是编程新手,无法找出我做错了什么Swift3 类型';任何';没有下标成员,请单击XPath,swift3,xcode8,Swift3,Xcode8,我正在尝试从mysql数据库获取信息,我有以下代码。我曾尝试使用其他页面上的编辑,但我是编程新手,无法找出我做错了什么 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!, o
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;
}
非常经常提到的基金会<代码> NSArray <代码>没有提供类型信息,因此它对快速编译器毫无帮助。
在Swift 3中,编译器必须知道所有下标对象的类型,否则会出错 要解决此问题,首先将数据源数组声明为包含Swift字典的Swift数组
。这让编译器——最终也是你——感到高兴
var values = [[String:Any]]()
如果所有字典值都是字符串,您甚至可以将值声明为[[String:String]]
其次,将反序列化行强制转换为相同类型:
values = try! JSONSerialization.jsonObject(with: data!, options: []) as! [[String:Any]]
PS:mutableContainers
在Swift中无效,传递空的选项
旁注:
即使在本地网络中,也不要通过数据(contentsOf: