我一直在尋找如何在Swift中使用guard關鍵字。最近一位開發人員告訴我,如果在關閉中沒有錯誤,下面的代碼將打印「成功」。正確使用Swift Guard關鍵字?
for attachment in attachments! {
attachment.fetchData { (data, error) in
guard let error = error else {
print(「success」)
return
}
print(error.localizedDescription)
}
我對他的發言有些困惑。在閱讀Apple的關閉和保護關鍵字文檔後,它看起來像我的代碼將只打印「成功」,只有當有一個錯誤。
我覺得他正在反向使用它,但我可能是錯的。 有人可以爲我分解,並解釋是否有或沒有錯誤打印成功?
謝謝。
時沒有錯誤成功打印。當守衛條件爲假時(或者在「守衛讓」的情況下變量爲零),守衛語句被輸入。 – dan
@dan - 啊,我明白了,所以如果錯誤不等於錯誤,或者沒有錯誤(錯誤爲零),那麼它讀取成功。謝謝。我認爲如果陳述是真實的,就像if語句一樣,將進入警戒條件。你想提交一個答案讓我接受嗎? – BlueishVelvet
你真的不應該使用'guard'來封裝快樂執行路徑的邏輯 - 只能用於失敗邏輯。在這種情況下,您可以使用'if let'來代替,並執行錯誤打印並返回。或者在'data'而不是'error'上使用'guard let'。 – Hamish