2016-02-26 67 views
0

我在Swift中从AFNetworking 2.5迁移到3.0,并且遇到了dataTaskWithRequest方法的问题。此方法位于具有AFHTTPSessionManager超类的类中。我从XCode得到的错误是“方法不覆盖它的超类中的任何方法”。Swift AFNetworking dataTaskWithRequest覆盖问题

什么是在SessionManager类中实例化dataTaskWithRequest方法的正确方法?

其他StackOverflow的帖子已建议删除 “覆盖”,但是当我这样做,我得到的错误:

“方法 'dataTaskWithRequest(:completionHandler :)' 用Objective-C中选择“dataTaskWithRequest:completionHandler: dataTaskWithRequest('与方法冲突 ':completionHandler' 从超类的AFURLSessionManager'具有相同的目标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) 
} 


} 

回答

0

in Swift 2 this should work:

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