无法像inout参数一样传递[[Class]]类型的不可变值

时间:2019-09-22 03:25:18

标签: arrays swift function class inout

我创建了一个称为Evento的类,其中每个元素对应于学校的测试或家庭作业,然后为一年中的每一天创建一个类型为[Evento]的变量。例如,一月的每一天(西班牙语为Enero)

class Evento: CustomStringConvertible{
var mes: String
var dia: String
var asignatura: String
var descripcion: String

init(mes: inout String, dia: inout String, asignatura: inout String, descripcion: inout String) {
    self.mes = mes
    self.dia = dia
    self.asignatura = asignatura
    self.descripcion = descripcion
}
var description: String {
    return "Evento(mes: \(mes), dia: \(dia), asignatura: \(asignatura), descripcion: \(descripcion)"
}

}

        var eventos1Febrero: [Evento] = []; var eventos2Febrero: [Evento] = []; var eventos3Febrero: [Evento] = []; var eventos4Febrero: [Evento] = [];
var eventos5Febrero: [Evento] = []; var eventos6Febrero: [Evento] = []; var eventos7Febrero: [Evento] = []; var eventos8Febrero: [Evento] = [];
var eventos9Febrero: [Evento] = []; var eventos10Febrero: [Evento] = []; var eventos11Febrero: [Evento] = []; var eventos12Febrero: [Evento] = [];
var eventos13Febrero: [Evento] = []; var eventos14Febrero: [Evento] = []; var eventos15Febrero: [Evento] = []; var eventos16Febrero: [Evento] = [];
var eventos17Febrero: [Evento] = []; var eventos18Febrero: [Evento] = []; var eventos19Febrero: [Evento] = []; var eventos20Febrero: [Evento] = [];
var eventos21Febrero: [Evento] = []; var eventos22Febrero: [Evento] = []; var eventos23Febrero: [Evento] = []; var eventos24Febrero: [Evento] = [];
var eventos25Febrero: [Evento] = []; var eventos26Febrero: [Evento] = []; var eventos27Febrero: [Evento] = []; var eventos28Febrero: [Evento] = [];

然后,我创建了一个函数,将这些变量的数组作为inout参数,当我尝试调用它时,它将打印消息“无法将类型为[[Evento]]的不可变值作为inout参数” < / p>

        func appendNuevoEvento(dia: String, eventosDelMes: inout [[Evento]] , mes: String = nuevoMes) {

        let diaIndexPath: Int = Int(dia)! - 1
        let intDia: Int = Int(dia)
        if mes.has31Days() {
            switch intDia {
            case 1...31:
                eventosDelMes[diaIndexPath].append(nuevoEvento)
            default:
                print("Creating an amazing and advanced function!")
            }
        }
        else if mes.has30Days() {
            switch intDia {
            case 1...30:
                eventosDelMes[diaIndexPath].append(nuevoEvento)
            default:
                print("Hope it works!")
            }
        }
        else if mes.isFebrero() {
            switch intDia {
            case 1...28:
                eventosDelMes[diaIndexPath].append(nuevoEvento)
            default:
                print("I really do!")
            }
        }

    }
                appendNuevoEvento(dia: "22", eventosDelMes: &[eventos1Enero, eventos2Enero, eventos3Enero, eventos4Enero, eventos5Enero, eventos6Enero, eventos7Enero, eventos8Enero, eventos9Enero, eventos10Enero, eventos11Enero]) ***Cannot pass immutable value of type '[[Evento]]' as inout argument***

0 个答案:

没有答案