swift - number - el operador no se puede aplicar a operandos del tipo object y int
El operador unario ''-'' no se puede aplicar a un operando de tipo ''@lvalue Int?''(alias ''@lvalue Opcional<Int>'') (1)
La respuesta es muy simple. ++ y - se eliminó de Swift 3. Pero + = y - = permaneció
Acerca de Optional<Int>
esta es una versión más larga para Int?
definición. En Swift Opcional definido como public enum Optional<Wrapped> : ExpressibleByNilLiteral
Esta pregunta ya tiene una respuesta aquí:
Acabo de actualizar el código de mi aplicación a la última versión de Swift y tengo esta función:
func setupGraphDisplay() {
//Use 7 days for graph - can use any number,
//but labels and sample data are set up for 7 days
//let noOfDays:Int = 7
//1 - replace last day with today''s actual data
graphView.graphPoints[graphView.graphPoints.count-1] = counterView.counter
//2 - indicate that the graph needs to be redrawn
graphView.setNeedsDisplay()
maxLabel.text = "/((graphView.graphPoints).max()!)"
print((graphView.graphPoints).max()!)
//3 - calculate average from graphPoints
let average = graphView.graphPoints.reduce(0, +)
/ graphView.graphPoints.count
averageWaterDrunk.text = "/(average)"
//set up labels
//day of week labels are set up in storyboard with tags
//today is last day of the array need to go backwards
//4 - get today''s day number
//let dateFormatter = NSDateFormatter()
let calendar = Calendar.current
let componentOptions:NSCalendar.Unit = .weekday
let components = (calendar as NSCalendar).components(componentOptions,
from: Date())
var weekday = components.weekday
let days = ["S", "S", "M", "T", "W", "T", "F"]
//5 - set up the day name labels with correct day
for i in (1...days.count).reversed() {
if let labelView = graphView.viewWithTag(i) as? UILabel {
if weekday == 7 {
weekday = 0
}
labelView.text = days[(weekday--)!]
if weekday! < 0 {
weekday = days.count - 1
}
}
}
}
Sin embargo, recibo un mensaje de error en la siguiente línea:
labelView.text = days[(weekday--)!]
Donde Xcode me está dando el siguiente error:
Unary operator ''--'' cannot be applied to an operand of type ''@lvalue Int?'' (aka ''@lvalue Optional<Int>'')
Traté de buscar respuestas en línea, pero todavía no pude encontrar nada que me ayudaría a solucionar este error.
También me @lvalue Int (aka ''@lvalue Optional<Int>'')
qué significa exactamente el mensaje de error por tipo @lvalue Int (aka ''@lvalue Optional<Int>'')
. Nunca antes había visto este tipo de datos y no sé cómo resolver el problema en consecuencia.
Gracias por adelantado.