ios - 将项目添加到 'Routine' 选项卡中的特定 TableView 部分。每一天都有自己的 list 或例程

标签 ios arrays swift uitableview dictionary

我的目标是拥有一个简洁的数据结构,该结构具有对应于一周中每一天的键,每天都有一个任务列表,可以进入 TableView 中 3 个部分中的一个。下面是我的代码。

struct Routines {
    let thumbnailImg: String
    let routineName: String
    let duration: String
}

struct RoutineTask {
    var taskSection: String
    var task: Routines
}

// routineList will contain all 7 days of week, with a value of RoutineTask which tracks the section that task belongs to and the task itself
var routinesList: [String: RoutineTask?] = [
    "Monday" : nil,
    "Tuesday" : nil,
    "Wednesday" : nil,
    "Thursday" : nil,
    "Friday" : nil,
    "Saturday" : nil,
    "Sunday" : nil
]

let routine = RoutineTask(taskSection: "WarmUp", task: Routines(thumbnailImg: "Crunches", routineName: "Sit ups", duration: "75 secs"))
routinesList["Monday"] = routine

以上是我如何解决这个问题的代码,但我觉得它可以做得更好。我是不是太复杂了,还是我的代码看起来很有趣?我只是在寻求有关如何改进此代码的建议。我将附上应用程序的照片,以便您可以直观地了解代码的工作原理。

照片:https://imgur.com/WB8fW6e

常规选项卡有一个表格 View ,其中包含 3 个部分,“热身”、“锻炼”和“拉伸(stretch)运动”。当用户创建新的例行任务时,他们指定它将转到哪个部分。我想到这个问题的方式是有一个字典,它的键对应于一周中的一天,它的值是“RoutineTask”类型,RoutineTasks 是一个结构,它将跟踪具有“taskSection”属性的 tableview 部分并保存 Routines在“任务”属性中。

既然你们对我的代码有了大致的了解,你们认为这是正确的方法吗?还是有更好的方法来完成我正在做的事情?非常感谢任何帮助,谢谢。

最佳答案

使用更多的enums 会是一个更好的主意。让您的应用程序的数据是强类型的并且能够使用 switch 语句比必须在任何地方比较字符串要好得多。例如,不使用 "Monday""Tuesday" 等,您可以声明一个 enum,甚至仍然可以获得名称使用 monday.rawValueenum 中的日期。

enum Weekday : String {
    case monday = "Monday"
    case tuesday = "Tuesday"
    // ...
}

taskSectionroutineName 的更多enums 也会很棒。以下 enum 可用于为 RoutineName 指定一个更具体的名称。

enum RoutineName {
    case crunches(name: String)
}

关于ios - 将项目添加到 'Routine' 选项卡中的特定 TableView 部分。每一天都有自己的 list 或例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47402127/

相关文章:

ios - ScrollView - 如何让按钮一直停留在屏幕底部

ios - 我可以将 Storyboard文件放在不同的物理文件夹中吗?

swift - 如何从 scaleAspectFit 模式的 UIImageView 的 UIImage 获取快照?

ios - 如何根据同一部分 Swift 4 中的数组更改 UITableViewCell 颜色

iOS 仅将一项服务宣传为外设 BTLE

iphone - 多个重复 View 的导航 Controller 设计

ios - MKPlacemark中的海拔高度消失

arrays - 在VBA中返回数组的函数

从字典中获取 ID 列表的 Pythonic 方式

java - 如何存储包含用户输入值的数组