Я получаю сообщение об ошибке «String» не может сопоставить значения в моем операторе Switch с помощью swift, почему? - PullRequest
0 голосов
/ 28 сентября 2018

Я получаю следующую ошибку при попытке использовать оператор switch для currentState с типом MJMaterialSwitchState в методе делегата switchStateChanged ниже.

  Error: xpression pattern of type 'String' cannot match values of type 'MJMaterialSwitchState'

Я используюПользовательский MJMaterialSwitch Пользовательский интерфейс, который работает отлично.Он переключается между состояниями on и off

Функция:

func switchStateChanged(_ switcher: MJMaterialSwitch, currentState: MJMaterialSwitchState) {

        tapticGenerator.notificationOccurred(.success)

            switch currentState{

                case "on":
                    discoverable = true

                case "off":
                    discoverable = false

                default:
                    break
            }

}

Это MJMaterialSwitchState:

public enum MJMaterialSwitchState {
    case on, off
}

1 Ответ

0 голосов
/ 28 сентября 2018

Вы переключаете дела должны быть MJMaterialSwitchState вместо String значений.

switch currentState {
    case .on:
        discoverable = true
    case .off:
        discoverable = false
}

Кроме того, вам не нужно default дело, если вы покрываете все дела в enum.

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