2016-02-26 66 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 
{ 
}