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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
rawValue
- Initialisierung: es wird eine Initialisierung automatisch erzeugtenum
s.finden Sie unter: Die Swift-Programmiersprache § Aufzählungen
HINWEIS: Diese Antwort wurde geändert. Frühere version von Swift verwenden Sie die Methode der Klasse
fromRaw()
zur Umwandlung von raw-Werte aufgezählten Werte.InformationsquelleAutor der Antwort Jeffery Thomas
Nutzung von Enum für den Vergleich wie folgt :
Vergleich:
Wert ändern :
InformationsquelleAutor der Antwort Alok