From 024395aed74a3ccd368d6495bd0767aa49b12a71 Mon Sep 17 00:00:00 2001 From: Huseyin Iyibas Date: Thu, 26 Mar 2026 12:38:03 +0300 Subject: [PATCH] Use Alamofire main queue response callback for API completion. Avoid DispatchQueue.main.async wrapping in requestAPI to prevent Swift 6 Sendable/data-race diagnostics when capturing completion. --- Sources/ipinfoKit/API/API.swift | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/Sources/ipinfoKit/API/API.swift b/Sources/ipinfoKit/API/API.swift index 9fa135e..47557bf 100644 --- a/Sources/ipinfoKit/API/API.swift +++ b/Sources/ipinfoKit/API/API.swift @@ -61,20 +61,16 @@ public class Service { URL: Service.Router, method: HTTPMethod, params: Parameters? = nil, - completion: @escaping (_ status: Response,_ data: Data,_ msg: String) -> Void) { - - let requestSession = session ?? AF - requestSession.request(URL.endPoint , method: method, parameters: params , encoding: JSONEncoding.default, headers: headers) - .response { response in - DispatchQueue.main.async { - switch response.result { - case .success(let value): - completion(.success, value ?? Data(), "Success") - case .failure(let err): - completion(.failure, Data(), err.localizedDescription) - break - } - } + completion: @escaping (_ status: Response, _ data: Data, _ msg: String) -> Void) { + let requestSession = session ?? AF + requestSession.request(URL.endPoint, method: method, parameters: params, encoding: JSONEncoding.default, headers: headers) + .response(queue: .main) { response in + switch response.result { + case .success(let value): + completion(.success, value ?? Data(), "Success") + case .failure(let err): + completion(.failure, Data(), err.localizedDescription) } - } + } + } }