Получение бинарного оператора ~= нельзя применить к двум (Int, Int) операндам в операторе Swift switch с (Int, Int) случаями кортежа

У меня есть UITableViewController с частным enum, называемым IndexPath, в качестве вложенного типа.

class SettingsViewController: UITableViewController {

    enum IndexPath {
        case Gender, Weight, EmergencyContact

        var tuple: (Int, Int) {
            switch self {
            case .Gender:
                return (0, 0)

            case .Weight:
                return (0, 1)

            case .EmergencyContact:
                return (1, 0)
            }
        }
    }

}

Дело в том, что внутри моего cellForRowAtIndexPath я могу просто поместить раздел и строку в кортеж и сделать оператор switch для соответствия значениям перечисления. Таким образом, я могу настроить ячейку так, как должен для этого индексного пути:

switch (indexPath.section, indexPath.row) {
case IndexPath.Gender.tuple:
    // Do something.

case IndexPath.Weight.tuple:
    // Do something.

case IndexPath.EmergencyContact.tuple:
    // Do something.

default:
    break;

}

Однако я продолжаю получать ошибку компилятора Binary operator ~= cannot be applied to two (Int, Int) operands в строках, где находятся случаи переключения. Есть идеи, что это значит? Я даже не знаю об операторе ~= и не использую его явно.


person MLQ    schedule 26.05.2015    source источник
comment
Возможный дубликат stackoverflow.com/questions/29677991/.   -  person Martin R    schedule 26.05.2015


Ответы (1)


Сделай это.

  switch (indexPath.section, indexPath.row) {
    case (IndexPath.Gender.tuple.0, IndexPath.Gender.tuple.1):
         // Do something.

    case (IndexPath.Weight.tuple.0, IndexPath.Weight.tuple.1):
        // Do something.

    case (IndexPath.EmergencyContact.tuple.0, IndexPath.EmergencyContact.tuple.1):
        // Do something.

    default:
        break;

    }
person Amit89    schedule 26.05.2015
comment
Если это помогло вам, можете принять как правильный ответ. Это поможет и другим. :) - person Amit89; 26.05.2015