我正在构建一个待办事项应用。我希望用户能够创建任务以及任务的类别。我试图弄清楚如何根据它所属的类别在tableview中显示正确的任务,我遇到了一些问题。我还希望用户能够选择截止日期。
假设我们有一个包含类别var categories = ["Work", "Private"]
如何存储任务,任务类别和截止日期? 然后根据它所属的类别访问正确的任务。
如果任务具有类别“主页”打印任务。
起初我考虑将其存储在字典var tasks = ["Category": "Task"]
中,但后来我无法弄清楚如何根据类别访问正确的任务。
我尝试过搜索,但无法在任何地方找到答案。
答案 0 :(得分:0)
这样做的一种方法是维护1个数组和1个字典。您可以拥有一个类别数组(为了维护特定的顺序),然后使用该字典来查找属于该类别的任务。所以看起来像这样:
var categories: [String] = ["Work", "Private"]
var tasks: [String : [String]] = ["Work" : ["Finish writing", "Go to lunch"], "Private" : ["Buy gifts for people who help me on Stack Overflow"]]
这样,在tableView数据源方法中,您可以将numberOfSections
设置为categories.count
,当需要计算行数时,可以执行以下操作:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//Get the category that corresponds to this section of the tableview
let category = categories[section]
//Return the number of tasks in that category
return tasks[category].count
}
这只是一种方法 - 我可能认为最简单,但在Swift中你必须安全地添加/删除/访问字典中的项目以避免崩溃。