Soy muy nuevo en Swift (comencé esta semana) y estoy migrando mi aplicación desde Objective-C. Básicamente tengo el siguiente código en Objective-C que funciona bien:
typedef enum : int {
MyTimeFilter1Hour = 1,
MyTimeFilter1Day = 2,
MyTimeFilter7Day = 3,
MyTimeFilter1Month = 4,
} MyTimeFilter;
...
- (void)selectFilter:(id)sender
{
self.timeFilterSelected = (MyTimeFilter)((UIButton *)sender).tag;
[self closeAnimated:YES];
}
Al traducirlo a Swift, hice lo siguiente:
enum MyTimeFilter : Int {
case OneHour = 1
case OneDay = 2
case SevenDays = 3
case OneMonth = 4
}
...
@IBAction func selectFilter(sender: AnyObject) {
self.timeFilterSelected = (sender as UIButton).tag as MyTimeFilter
self.close(true)
}
Al hacer eso, obtengo el error:
'Int' no es convertible a 'MyTimeFilter'
No sé si mi enfoque (usando la propiedad de etiqueta) es el mejor, pero de todos modos necesito hacer este tipo de casting en diferentes lugares de mi aplicación. ¿Alguien tiene una idea de cómo deshacerse de este error?
¡Gracias!
(sender as UIButton)
, simplemente puede cambiar la firma del método para tomar enUIButton
lugar deAnyObject
.