2
Swift例外ハンドラからNSAlertスタイルのエラーシートを生成したいとします。 Objective-Cの持つ過去には、私は単にスウィフトと今[NSAlert alertWithError:]
を使用することができ、それがミックスの中で独自の例外処理システムの、アラートはかなり無骨な感じ:Swift例外からエラーシートを生成する
enum Problems: ErrorType {
case Bad
case Worse
}
func f() throws {
throw Problems.Worse
}
func g() {
let errorMessage: String
do {
try f()
}
catch Problems.Bad {
errorMessage = "This was bad"
}
catch Problems.Worse {
errorMessage = "This was even worse"
}
catch {
errorMessage = "This was unexpected"
}
guard errorMessage == nil else {
let alert = NSAlert()
alert.messageText = "Error"
alert.informativeText = errorMessage
alert.beginSheetModalForWindow(self, completionHandler: { [unowned self] (returnCode) -> Void in
if returnCode == NSAlertFirstButtonReturn {
// Handle the response
}
})
}
これはクルージ感じているとあれば、それはうまくスケールしないようにそこチェックする必要のある多くのエラー状態です。より良い方法がありますか?