xcode - Swift AFNetworking dataTaskWithRequest 覆盖问题

标签 xcode swift afnetworking afnetworking-3

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

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

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

“带有 Objective-C 选择器“dataTaskWithRequest:completionHandler:”的方法“dataTaskWithRequest(:completionHandler:)”与具有相同内容的父类(super class)“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)
 }


 }

最佳答案

在 Swift 2 中这应该可以工作:

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

关于xcode - Swift AFNetworking dataTaskWithRequest 覆盖问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658352/

相关文章:

ios - Swift 属性观察者和 nil

ios - AFNetworking 2.2.1 中的错误

ios - 字符串不符合协议(protocol) "intervalType"

ios - 在 FaSTLane/Gym 中将内部版本号传递给 xcargs

ios - 如何使用 swift 在 SpriteKit 游戏中创建 'share to Facebook button'?

Swift Remove 1 节点在碰撞后移动

上传应用程序时忽略 Info.plist 中的 IOS 权限

ios - Cocos2d-x 4.0新项目不包含xcodeproj文件

ios - 使用AFNetworking 2批处理请求上传图像阵列

ios - 使用用户名和密码打开 HTTP session