Как достичь Enum, чтобы иметь аргументы по делу - PullRequest
0 голосов
/ 22 июня 2019

У меня есть enum, который имеет строковое значение.Я хочу, чтобы в одном из случаев получить строку в качестве ввода и вернуть строку, которую этот ввод.Как мне этого добиться?

public enum PredictTypes: String {
    case favtasks = "isFav == YES"
    case importtanttasks = "isImportant == YES"
    case alltasks = ""
    case customList(listName: String) = "listName == \(listName)"
}

Когда я искал, я нашел несколько сообщений, но не могу понять для своего случая:

Могут ли связанные значения и необработанные значения сосуществовать в перечислении Swift?

1 Ответ

0 голосов
/ 22 июня 2019

Я бы переписал ваше перечисление так:

public enum PredictTypes {
    case favtasks
    case importanttasks
    case alltasks
    case customList(listName: String)

    var rawValue: String {
        switch self {
        case .favtasks: return "isFav == YES"
        case .importanttasks: return "isImportant == YES"
        case .alltasks: return ""
        case .customList(let listName): return "listName == \(listName)"
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...