gpt4 book ai didi

ios - 如何在 swift 3.0 中合并两个结构并在 uitableviewcell 中打印两者的值

转载 作者:行者123 更新时间:2023-11-28 14:44:57 25 4
gpt4 key购买 nike

下面是我的两个结构,我想在 UITableViewCell 中打印两个结构的值

struct MainCell: Decodable
{
let job_id: String
let job_desig: String
let job_desc: String
let job_location: String
let job_emp_gender: String
let job_skills: String
let company_id: Int

}
struct Company: Decodable{
let company_id: Int
let company_name: String
}

var mainCellData = [MainCell]()
var companyData = [Company]()

- TableView 方法

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return mainCellData.count + companyData.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell:JobDetails_TableViewCell = tableView.dequeueReusableCell(withIdentifier: "jobCell") as! JobDetails_TableViewCell

for jobs in mainCellData {
cell.lblDesig.text = jobs.job_desig
cell.lblDesc.text = jobs.job_desc
cell.lblLocation.text = jobs.job_location
cell.comName.text = jobs.name.company_name
}

return cell
}

因为我想从我的第一个结构(struct MainCell: Decodable)打印 job_desig、job_desc 和 job_location,从我的第二个结构(struct Company: Decodable)打印 company_name

谁能帮我解决我的问题?

最佳答案

  1. 您的 numberOfRowsInSection 不符合您的要求。
  2. 去掉 cellForRowAt 中的 for 循环。
  3. 你不需要合并任何东西。您需要根据公司名称的 id 查找公司名称。

您的代码应如下所示:

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:JobDetails_TableViewCell = tableView.dequeueReusableCell(withIdentifier: "jobCell") as! JobDetails_TableViewCell

let data = mainCellData[indexPath.row]
cell.lblDesig.text = data.job_desig
cell.lblDesc.text = data.job_desc
cell.lblLocation.text = data.job_location
cell.comName.text = companyData.first { $0.company_id == data.company_id }?.company_name

return cell
}

真正的诀窍是获取公司名称。这个想法是你有 data.company_id 这当然是显示行的 company_id。您需要遍历 companyData 数组并找到具有相同 company_idCompany。找到匹配项后,从该匹配公司获取 company_name

代码 companyData.first { $0.company_id == data.company_id }?.company_name 表示:

遍历 companyData 数组并找到 company_id 等于 data.company_id 的第一个条目。如果找到匹配项,则返回其 company_name

关于ios - 如何在 swift 3.0 中合并两个结构并在 uitableviewcell 中打印两者的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50342509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com