From 74ea4a7dc1bdfc556eb39765e4dfd8249274c420 Mon Sep 17 00:00:00 2001 From: Joe Carroll Date: Tue, 24 Feb 2026 16:07:31 -0600 Subject: [PATCH] Refactor error handling in Request class and improve string decoding in Utilities --- Source/SwiftyDropbox/Shared/Handwritten/Request.swift | 8 ++++---- Source/SwiftyDropbox/Shared/Handwritten/Utilities.swift | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/SwiftyDropbox/Shared/Handwritten/Request.swift b/Source/SwiftyDropbox/Shared/Handwritten/Request.swift index 15d690c1..c31ec869 100644 --- a/Source/SwiftyDropbox/Shared/Handwritten/Request.swift +++ b/Source/SwiftyDropbox/Shared/Handwritten/Request.swift @@ -73,14 +73,14 @@ public class Request { func handleResponseError(networkTaskFailure: NetworkTaskFailure) -> CallError { let callError = parseCallError(from: networkTaskFailure) - + // We call the global error response handler to alert it to an error // But unlike in the objc SDK we do not stop the SDK from calling the per-route completion handler as well. GlobalErrorResponseHandler.shared.reportGlobalError(callError.typeErased) - + return callError } - + private func parseCallError(from networkTaskFailure: NetworkTaskFailure) -> CallError { switch networkTaskFailure { case .badStatusCode(let data, _, let response): @@ -292,7 +292,7 @@ public class DownloadRequestMemory String? { for key in dictionary.keys { - let keyString = key as! String + guard let keyString = key as? String else { continue } if keyString.lowercased() == lookupKey.lowercased() { return dictionary[key] as? String } diff --git a/Source/SwiftyDropbox/Shared/Handwritten/Utilities.swift b/Source/SwiftyDropbox/Shared/Handwritten/Utilities.swift index 08047b06..b0b2a67e 100644 --- a/Source/SwiftyDropbox/Shared/Handwritten/Utilities.swift +++ b/Source/SwiftyDropbox/Shared/Handwritten/Utilities.swift @@ -8,7 +8,7 @@ import Foundation enum Utilities { static func utf8Decode(_ data: Data) -> String { - NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String + String(data: data, encoding: .utf8) ?? String(data: data, encoding: .ascii) ?? "" } static func asciiEscape(_ s: String) -> String {