Проблема переопределения Swift AFNetworking dataTaskWithRequest

Я перешел с AFNetworking 2.5 на 3.0 в Swift, и у меня возникла проблема с методом dataTaskWithRequest. Этот метод находится в классе надкласса AFHTTPSessionManager. Ошибка, которую я получаю от XCode, заключается в том, что «Метод не переопределяет какой-либо метод из своего суперкласса».

Как правильно создать экземпляр метода dataTaskWithRequest в классе SessionManager?

В других сообщениях StackOverflow рекомендуется удалить «переопределение», но когда я это делаю, я получаю сообщение об ошибке:

«Метод dataTaskWithRequest(:completionHandler:)» с селектором Objective-C «dataTaskWithRequest:completionHandler:» конфликтует с методом «dataTaskWithRequest(:completionHandler:)» из суперкласса «AFURLSessionManager» с тем же Objective-C селектор"

Код:

class SessionManager: AFHTTPSessionManager {

...
func dataTaskWithRequest(request: NSURLRequest!, completionHandler: ((NSURLResponse?, AnyObject?, NSError?) -> Void)) ->
    NSURLSessionDataTask! {

    if let request = request as? NSMutableURLRequest {
        request.setValue(gQuidsiCache.amznSessionID, forHTTPHeaderField: amazonSesionIDHeader)
        request.setValue(gQuidsiCache.visitorID, forHTTPHeaderField: legacyVisitorIDHeader)
    }

    return super.dataTaskWithRequest(request, completionHandler: completionHandler)
 }


 }

person TheFooh    schedule 26.02.2016    source источник


Ответы (1)


в Swift 2 это должно работать:

override func dataTaskWithRequest(request: NSURLRequest, completionHandler: ((NSURLResponse, AnyObject?, NSError?) -> Void)?) -> NSURLSessionDataTask 
{
}
person Olof    schedule 10.01.2017