私はSwiftでguardキーワードを使用する方法を探していました。最近、開発者は、閉鎖にエラーがない場合、以下のコードは "成功" を印刷すると私に言った。スウィフトガードの適切な使用?
for attachment in attachments! {
attachment.fetchData { (data, error) in
guard let error = error else {
print(“success”)
return
}
print(error.localizedDescription)
}
私は彼の声明で少し混乱しています。 にエラーがある場合にのみ、彼のコードが "成功"を印刷するように、Appleからクロージャーとガードのキーワード文書を読んだ後、
彼は逆にそれを使っているような気がしますが、私は間違っている可能性があります。 誰かが私のためにそれを打ち破り、エラーがあったときに成功したかどうかを説明することができますか??
ありがとうございます。
。ガードステートメントは、ガード条件が偽(または、ガードレットの場合は変数がnil)のときに入力されます。 – dan
@dan - エラーがエラーと同じではない場合、またはエラーがない場合(エラーはnil)、成功を読み取ります。ありがとうございました。 if文のように、文が真であればガード条件を入力すると思った。私が受け入れる答えを提出しますか? – BlueishVelvet
幸せな実行パスのロジックをカプセル化するために 'guard'を使用するべきではありません。この場合、代わりに 'if let'を使用し、エラーを印刷してそこに戻すことができます。あるいは、 'error'ではなく' data'に 'guard let'を使用してください。他 – Hamish