Ich möchte Arten von Objekten in Swift vergleichen. Ich habe eine Funktion, die ein Objekt von NSError als Parameter akzeptiert. Es sollte eine benutzerdefinierte Zeichenfolge zurückgeben.Schnelle Überprüfung Art des Objekts
Es sieht wie folgt aus:
static func getLocalizedErrorText(error: NSError) -> String{
switch error {
case is NoConnection: //class NoConnection: NSError
return "....."
...
}
Aber die Funktion funktioniert nicht wie erwartet. Ich denke, das Hauptproblem ist, dass dieses Beispiel nicht funktioniert:
var dummy = MySubError() //class MySubError: MyBaseError
var dummy2: MyBaseError?
dummy2 = MySubError()
if dummy.dynamicType == MySubError.self {
//This will work
}
if dummy2.dynamicType == MySubError.self {
//This will not work
}
Wie kann ich überprüfen, welchen Typ der Parameter hat?