Swift AFNetworking dataTaskWithRequest覆盖问题
问题描述:
我在Swift中从AFNetworking 2.5迁移到3.0,并且遇到了dataTaskWithRequest方法的问题。此方法位于具有AFHTTPSessionManager超类的类中。我从XCode得到的错误是“方法不覆盖它的超类中的任何方法”。Swift AFNetworking dataTaskWithRequest覆盖问题
什么是在SessionManager类中实例化dataTaskWithRequest方法的正确方法?
其他*的帖子已建议删除 “覆盖”,但是当我这样做,我得到的错误:
“方法 '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)
}
}
答
in Swift 2 this should work:
override func dataTaskWithRequest(request: NSURLRequest, completionHandler: ((NSURLResponse, AnyObject?, NSError?) -> Void)?) -> NSURLSessionDataTask
{
}