Sou muito novo no Swift (comecei esta semana) e estou migrando meu aplicativo do Objective-C. Eu tenho basicamente o seguinte código no Objective-C que funciona bem:
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];
}
Ao traduzi-lo para Swift, fiz o seguinte:
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)
}
Ao fazer isso, recebo o erro:
'Int' não é conversível em 'MyTimeFilter'
Não sei se minha abordagem (usando a propriedade tag) é a melhor, mas, mesmo assim, preciso fazer esse tipo de transmissão em lugares diferentes no meu aplicativo. Alguém tem uma idéia de como se livrar desse erro?
Obrigado!
(sender as UIButton), você pode simplesmente alterar a assinatura do método para obter um emUIButtonvez deAnyObject.