Я борюсь за создание массива дженериков в Swift. Вот мои протоколы/классы.Swift - Объявление массива генериков
public protocol InitializableWithData {
init(data: NSData?) throws
}
internal struct RequestWithCompletionHandler<T: InitializableWithData> {
let request: APIRequest<T>
let completionHandler: ((response: APIResponse<T>?, error: Error?) -> Void)?
}
var ongoingRequests = [RequestWithCompletionHandler<InitializableWithData>]()
Я получаю следующее сообщение об ошибке:
Using InitializableWithData as a concrete type conforming to protocol 'InitializableWithData' is not supported.
Я не заинтересован в фактическом типе "содержал" по RequestWithCompletionHandler
. Я просто хочу отслеживать все запросы, не заботясь о том, какой объект они «возвратят». Я хочу отслеживать их, поэтому я могу отменить их, приостановить их и т. Д.
Поэтому я хочу отслеживать все текущие запросы, чтобы я мог выполнить их при необходимости.
Но это не то, что мне нужно. Меня не интересует фактический тип, содержащийся в RequestWithCompletionHandler. Я просто хочу отслеживать все запросы, не заботясь о том, какой объект они «возвратят». Я хочу отслеживать их, чтобы отменить их, приостановить их и т. Д. – Cosmin