gpt4 book ai didi

ios - Swift - 使用 [String : [String: String]] 的字典填充 uitableview

转载 作者:行者123 更新时间:2023-11-28 05:54:10 25 4
gpt4 key购买 nike

我是 Swift 的新手,我目前正在创建一个向用户提问的日记应用程序。我像这样存储用户的输入:

dict = ["date": ["question1": "answer", "question2": "answer"]]

现在我需要在表格 View 中将这些数据显示给用户,其中“日期”是标题,“问题 1”是描述。

我在网上看过,但答案似乎引用“indexPath.row”来将信息输入单元格,但由于这是一个字符串字典,我不能这样做。

感谢您的帮助!

最佳答案

与其使用字典数组,不如考虑使用能更好地表示数据的对象。

struct Question: {
let question: String
let answer: String
}

struct DiaryDay {
let date: Date // Note this is a Date object, not a String
let questions: [Question]
}

然后你有

let diaryDays = DiaryDay(date: <date>, questions: 
[Question(question: "question1": answer: "answer"),
Question(question: "question2": answer: "answer")])

虽然有更多的代码,但继续前进您会发现更容易看到正在发生的事情。

看起来你应该每天写一个部分......

override func numberOfSections(in tableView: UITableView) -> Int {
return diaryDays.count
}

然后每个问题一行......

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let diaryDay = diaryDays[section]
return diaryDay.questions.count
}

然后配置你的手机……

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// dequeue cell
let diaryDay = diaryDays[indexPath.section]
let question = diaryDay.questions[indexPath.row]
cell.question = question
return cell
}

并在节标题中显示日期......

override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let diaryDay = diaryDays[section]

return // formatted diaryDay.date
}

关于ios - Swift - 使用 [String : [String: String]] 的字典填充 uitableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51962374/

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