我刚刚阅读了关于enum
的Apple文档,但我仍然感到有些困惑。
假设我有一个名为员工的班级。我希望班级员工拥有一系列任务(我猜最好的选择是[String])。但我希望每项任务都具有状态,即.Complete
或.Incomplete
。
我可以在Tasks
内部使用另一个名为taskName的属性,但我认为让Array
存储String
s
以下是我到目前为止所写的内容:
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
我知道这很可能是错的。那我该怎么做呢?
答案 0 :(得分:1)
以下是您可以采用的简单方法。
//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