обрабатывать случаи Enums в Swift - PullRequest
1 голос
/ 07 мая 2019

Как мы можем обработать один и тот же случай с разными входами из ответа в Enum 's

enum MyNotificationType: String, Codable {
        case practice = "push"
        case practice = "PracticeRecommendation"
        case play = "PlayRecommendation"
        case play = "pop"
    }

Редактировать:

Мне это нужно, потому что яобычная практика image для

push, PracticeRecommendation

и play image для

PlayRecommendation, всплывающее

Изменить 2:

enum MyNotificationType: String, Codable {
    case push = "push"
    case practice = "PracticeRecommendation"
    case play = "PlayRecommendation"
    case pop  = "pop"
}

И добавлено switch

private func showImage(_ type: MyNotificationType) {
        switch type {
        case .practiceRecommendation, .push:
            self.typeImgView.image = UIImage(named: "Practice")
            break
        case .play, .pop:
            self.typeImgView.image = UIImage(named: "Play")
            break
        }
    }

Для работы с изображениями

1 Ответ

1 голос
/ 07 мая 2019

Хм.Вы можете использовать перечисления со связанными типами, хотя вы не сможете статически обеспечить возможные строки, если вы тоже не измените init (rawType).Хотя я не уверен, чего вы пытаетесь достичь, поэтому может быть другой путь

enum MyNotificationType{
 case practice(value: String)
 case play(value: String)

 init(rawType: String){
    //define what case based on string, do error if you can't handle or use a unknown case
 }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...