arrays - 带有枚举的 Swift 类数组

标签 arrays swift class enums

我刚刚阅读了有关 enum 的 Apple 文档,但我仍然有些困惑。

假设我有一个名为Employee 的类。我希望类(class)员工有一系列任务(我想最好的选择是 [String])。但我希望每个任务都有一个状态,即.Complete.Incomplete

我可以在 Tasks 中有另一个名为 taskName 的属性,但我认为让 Array 存储 String 更容易

这是我到目前为止想写的:

class Employee {
    class Tasks: Array { // Or [String], I have no idea
        enum Status {
            case Complete
            case Incomplete
        }
    }

    var tasks: Tasks

    init?() {
        self.tasks = Tasks()
    }
}

// Then I guess Employee.tasks[0].Status should work

我知道这很可能是错误的。那我应该怎么做呢?

最佳答案

这是您可以执行的简单方法。

//Employee Class with Array of Task
class Employee {
    var tasks: [Task]
    init(tasks: [Task]) {
        self.tasks = tasks
    }
}

//Task Class has the status
class Task {
    var status:Status
    var taskName: String
    init(status: Status, taskName: String) {
        self.status = status
        self.taskName = taskName
    }
}

//Status is an enum
enum Status {
    case Complete
    case Incomplete
}

这是简单的测试代码...

//Testing 
let task1 = Task(status: Status.Complete, taskName: "First Task")
let task2 = Task(status: Status.Incomplete, taskName: "Second Task")
let employee = Employee(tasks: [task1, task2])

print(employee.tasks[0].status) //Prints -->> Complete
print(employee.tasks[1].taskName)//Prints -->> Second Task

关于arrays - 带有枚举的 Swift 类数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540483/

相关文章:

swift - 表格 View 滞后(即使在删除手势识别器之后)

c - 将 Fortran 零长度数组传递给 C 的正确方法是什么?

c# - 如何在 C++ 和 C# 之间共享一个大字节数组

ios - 按下返回按钮时在 UITextField 之间切换

ios - UIPresentationController - 演示 View 大小?

python - 如何在python中使用只有一个类的实例

c++ - 类(里程表)- 错误信息

java - 如何让代码更灵活

javascript - 绑定(bind)类 - 数组的项目

javascript - 如何从字符串创建 JS 对象