我尝试使用本地页面中的JSON填充表格。 到目前为止,它从JSON中获取所有数据,但仍然没有任何文本进入单元格。
我检查了我的单元格的标识符,它与withIdentifier匹配,或者使用了变量nom或fec,但也没有工作。
任何帮助都会有用(除了使用Alamofire)。
import UIKit
class ListarViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var nom: String?
var fec: String?
var datas = [Actividad]()
struct Actividad : Codable {
let actividad: String?
let fecha: String?
}
@IBOutlet weak var pruebalbl: UILabel!
var correo: String?
override func viewDidLoad() {
super.viewDidLoad()
pruebalbl.text = correo
//print(correo)
let request = NSMutableURLRequest(url: NSURL(string: "http://localhost:8080/swiftdb/listarAct.php")! as URL)
request.httpMethod = "POST"
let postString = "correo=\(pruebalbl.text!)"
request.httpBody = postString.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request as URLRequest) {
data, response, error in
guard let data = data, error == nil else{return}
do {
let articlesData = try JSONDecoder().decode([Actividad].self, from: data)
DispatchQueue.main.async{
self.datas = articlesData
let aarti = self.datas
print(self.datas)
for item in aarti {
self.nom = item.actividad
self.fec = item.fecha
print("Nombres \(self.nom)")
print("Fecha \(self.fec)")
}
}
} catch let error as NSError {
print(error)
}
print("response = \(response)")
let responseString = NSString(data: data, encoding: String.Encoding.utf8.rawValue)
print("responseString = \(responseString)")
}
task.resume()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return datas.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
cell?.textLabel?.text = datas[indexPath.row].actividad
return cell!
}
}
我甚至将自定义文本添加到单元格.textLabel?.text并且不起作用。
答案 0 :(得分:1)
感谢@vadian
我得到了答案:
我只需要在DispatchQueue.main.async {}
之间添加reloadData()答案 1 :(得分:0)
也许您必须在调用异步函数之前验证来自url请求的状态。
let response = response as? HTTPURLResponse
if(response?.statusCode == 200) {
//Call your DispatchQueue
}
我希望这对你有用。
素不相识!