我刚刚阅读了有关 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/