我正在通过API获取数据并将其保存到
init
中。当我将这些数据显示到表视图中时,它只显示字典的第一个值。我想将字典的所有值显示到我的表视图中。
班级:
class FetchedDeparment
{
var depttName: String
var createdDate: String
init(depttName: String, createdDate: String) {
self.depttName = depttName
self.createdDate = createdDate
}
}
从API获取数据并保存
init
。
var fetchedDepttData = [FetchedDeparment]()
fetchedDepttData = []
self.arrDeptt = json["departments"] as! [[String : Any]]
print(self.arrDeptt)
for eachDepartment in json["departments"]!
{
let eachData = eachDepartment as! [String: Any]
let depttName = eachData["name"] as! String
let createdDate = eachData["created_at"] as! String
self.fetchedDepttData.append(FetchedDeparment.init(depttName: depttName, createdDate: createdDate))
}
self.tableView.reloadData()
表格视图: 这是我想显示所有数据的地方。
func numberOfSections(in tableView: UITableView) -> Int {
return fetchedDepttData.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "DepartmentCell", for: indexPath) as! ShowDepttTVCell
cell.lblDepttName.text = fetchedDepttData[indexPath.row].depttName
cell.lblCreatedDate.text = fetchedDepttData[indexPath.row].createdDate
return cell
}
你的代码没问题。您必须将行替换为节,因为您在 numberOfSection 表视图数据源方法中计算了数组。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "DepartmentCell", for: indexPath) as! ShowDepttTVCell
cell.lblDepttName.text = fetchedDepttData[indexPath.section].depttName
cell.lblCreatedDate.text = fetchedDepttData[indexPath.section].createdDate
return cell
}
这就是你要做的 第一的 1. var DataYouWant: [[字符串:任意]] = [字符串:任意] 这是使用 alamofire 提取数据的方法 2.
func demoApi() {
Alamofire.request("https://jsonplaceholder.typicode.com/posts", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in
switch(response.result) {
case .success(_):
guard let json = response.result.value as! [[String:Any]]? else{ return}
print("Response \(json)")
for item in json {
self.DataYouWant.append(item)
// if let title = item["title"] as? String {
// self.titleArray.append(title)
// }
}
if !self.getAllDetail.isEmpty{
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
break
case .failure(_):
print("Error")
break
}
}
}
这就是 numberOfSections 的样子 func numberOfSections(in tableView: UITableView) -> Int { 返回1 }
然后
func tableView(_ tableView: UITableView, numberOfRowsInSection 部分: Int) -> Int { 返回 DataYouWant.count }
如果您还有其他问题请告诉我