Swift - Int in enum: Int

Ich bin ganz neu Swift (hat diese Woche begonnen) und ich bin der Migration meiner app von Objective-C. ich habe im Grunde den folgenden code in Objective-C, funktioniert einwandfrei:

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];
}

Beim übersetzen zu Swift, ich habe die folgenden:

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)
}

Indem ich das Tue, bekomme ich die Fehlermeldung :

'Int' nicht konvertierbar 'MyTimeFilter'

Ich weiß nicht, ob mein Ansatz (mit Hilfe der tag-Eigenschaft) ist die beste, aber trotzdem brauche ich diese Art des Castings in verschiedenen Orten in meiner app. Hat jemand eine Idee, wie man diesen Fehler loszuwerden?

Dank!

InformationsquelleAutor der Frage Marcos Duarte | 2014-08-13

Schreibe einen Kommentar