web-dev-qa-db-ja.com

SwiftのErrorとNSErrorの違いは何ですか?

エラーを返すライブラリを作成しているので、目的に合わせてどのライブラリを使用する必要があるのでしょうか。

PDATE:明確にする必要があります。返される結果は非同期呼び出しからのものであるため、エラーが発生した場合にユーザーに通知する必要があります。

30
Wilson

NSErrorはCocoaですクラス

NSErrorオブジェクトは、エラー状態に関する情報を拡張可能なオブジェクト指向の方法でカプセル化します。定義済みのエラードメイン、ドメイン固有のエラーコード、およびアプリケーション固有の情報を含むユーザー情報辞書で構成されます。

Errorは、Swift protocolであり、クラス、構造体、および列挙型が可能であり、NSErrorが準拠しているものです。

スローできるエラー値を表す型。

Errorプロトコルへの準拠を宣言する任意のタイプを使用して、Swiftのエラー処理システムでエラーを表すことができます。 Errorプロトコルにはそれ自体の要件がないため、作成するカスタムタイプの適合を宣言できます。

引用部分は、ドキュメント内の字幕の説明です。

Swiftのエラー処理システムは、try - catchを使用してエラーをキャッチするパターンです。キャッチするエラーは、メソッドによってthrownである必要があります。このパターンは、NSErrorインスタンスを使用した従来のエラー処理よりもはるかに汎用性があります。 try - catchを実装するためにnotを計画している場合、実際にはErrorプロトコルは必要ありません。

37
vadian