Swift AFNetworking dataTaskWithRequest覆盖问题

时间:2016-02-26 17:44:01

标签: xcode swift afnetworking afnetworking-3

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

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

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

“方法”dataTaskWithRequest(:completionHandler :)'与Objective-C选择器'dataTaskWithRequest:completionHandler:'与来自超类'AFURLSessionManager'的方法'dataTaskWithRequest(:completionHandler :)'冲突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)
 }


 }

1 个答案:

答案 0 :(得分:0)

在Swift 2中,这应该可行:

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