Какие типы ошибок могут AVAudioSession.sharedInstance().setActive(true)
бросить?
Если он может только выкинуть NSError
с, тогда нет необходимости указывать это при обнаружении ошибки. Вы могли бы просто написать:
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print("Dim background error")
}
Если вы хотите использовать ошибку в вашем catch
-scope, вы можете получить доступ к нему. Swift автоматически связывает брошенную ошибку в error
, который может быть использован:
catch {
// do something with `error`
}
Если метод бросает несколько типов ошибок, и вы только хотите иметь дело с теми, которые NSError
s, вы можете условно связать их:
catch let specialError as NSError {
// do something with `specialError`
}
Вы должны убедиться, что каждая брошенная ошибка обрабатывается. Таким образом, если предположить, что этот метод может также бросить RandomError
(который я только что сделал сейчас), вы должны написать:
catch let randomError as RandomError {
// do something with `randomError`
}
... в дополнение к catch
в NSError
.
Или вы могли бы, конечно, использовать общий случай:
catch {
// do something with `error`
}
Так я предполагаю, что проблему можно решить путем удаления let err as NSError
, с вашего catch
-statement.
Заменить '' println' на print' и перезапустить 'xcode'. Возможно, у компилятора есть проблемы. –