, welche Arten von Fehlern kann AVAudioSession.sharedInstance().setActive(true)
Wurf?
Wenn es nur NSError
s auslösen kann, müssen Sie dies nicht angeben, wenn Sie den Fehler abfangen. Sie könnten einfach schreiben:
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print("Dim background error")
}
Wenn Sie den Fehler in Ihrem catch
-scope verwenden möchten, können Sie immer noch darauf zugreifen können. Swift automatisch bindet den geworfen Fehler error
, die verwendet werden können:
catch {
// do something with `error`
}
Wenn das Verfahren mehrere Arten von Fehlern führt, und Sie wollen nur mit denen beschäftigen, die NSError
s sind, können Sie bedingt binden sie:
catch let specialError as NSError {
// do something with `specialError`
}
Sie müssen jedoch sicherstellen, dass jeder geworfene Fehler behandelt wird. So unter der Annahme, dass das Verfahren auch ein RandomError
werfen kann (was ich gerade jetzt aus), würden Sie schreiben müssen:
catch let randomError as RandomError {
// do something with `randomError`
}
... neben die catch
der NSError
.
Oder Sie könnten natürlich den allgemeinen Fall verwenden:
catch {
// do something with `error`
}
Also gehe ich davon aus, Ihr Problem kann let err as NSError
durch Entfernen von Ihrem catch
-Aussage gelöst werden.
'Ersetzen println' von' print' und Relaunch 'xcode'. Vielleicht hat der Compiler Probleme. –