У меня есть следующее перечисление.
enum EstimateItemStatus: Printable {
case Pending
case OnHold
case Done
var description: String {
switch self {
case .Pending: return "Pending"
case .OnHold: return "On Hold"
case .Done: return "Done"
}
}
init?(id : Int) {
switch id {
case 1:
self = .Pending
case 2:
self = .OnHold
case 3:
self = .Done
default:
return nil
}
}
}
Мне нужно получить все необработанные значения в виде массива строк (например, ["Pending", "On Hold", "Done"]
).
Я добавил этот метод к перечислению.
func toArray() -> [String] {
var n = 1
return Array(
GeneratorOf<EstimateItemStatus> {
return EstimateItemStatus(id: n++)!.description
}
)
}
Но я получаю следующую ошибку.
Невозможно найти инициализатор для типа 'GeneratorOf', который принимает список аргументов типа '(() → _)'
Я не могу понять, как это решить. Любая помощь? Или, пожалуйста, скажите мне, есть ли более простой/лучший/более элегантный способ сделать это.
Спасибо.