我在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)
}
}
答案 0 :(得分:0)
override func dataTaskWithRequest(request: NSURLRequest, completionHandler: ((NSURLResponse, AnyObject?, NSError?) -> Void)?) -> NSURLSessionDataTask
{
}