Захват отправки при использовании обработчиков завершения в SwiftIOS

Программируем под IOS
Ответить
Anonymous
 Захват отправки при использовании обработчиков завершения в Swift

Сообщение Anonymous »

Я использую следующий код: < /p>

Код: Выделить всё

struct HTTPClient {

func fetchSources(completion: @escaping (Result) -> Void) {
guard let url = URL(string: "SOMEURL") else {
completion(.failure(URLError(.badURL)))
return
}

URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
DispatchQueue.main.async {
completion(.failure(error))
}
return
}

guard let data = data else {
DispatchQueue.main.async {
completion(.failure(URLError(.badServerResponse)))
}
return
}

do {
let sources = try JSONDecoder().decode([Source].self, from: data)
DispatchQueue.main.async { // hop to main for UI
completion(.success(sources))
}
} catch {
DispatchQueue.main.async {
completion(.failure(error))
}
}
}.resume()
}
}
< /code>
На завершении строки (.failure) я получаю следующее предупреждение: < /p>
Capture of 'completion' with non-Sendable type '(Result) -> Void' in a '@Sendable' closure
Предупреждение появляется Swift 6. On Swift 5 Нет ошибок и никаких предупреждений.

Подробнее здесь: https://stackoverflow.com/questions/797 ... s-in-swift
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»