0

Swift で AFNetworking 2.5 から 3.0 に移行しましたが、dataTaskWithRequest メソッドに問題がありました。このメソッドは、AFHTTPSessionManager のスーパークラスを持つクラスにあります。XCode から得られるエラーは、「メソッドはそのスーパークラスのメソッドをオーバーライドしません」というものです。

SessionManager クラスで dataTaskWithRequest メソッドをインスタンス化する適切な方法は何ですか?

他の StackOverflow の投稿では、「オーバーライド」を削除することを推奨していますが、そうするとエラーが発生します。

Objective-C セレクター 'dataTaskWithRequest:completionHandler:' を持つメソッド 'dataTaskWithRequest( :completionHandler:)' は、同じ Objective-C セレクターを持つスーパークラス 'AFURLSessionManager' のメソッド 'dataTaskWithRequest( :completionHandler:)' と競合します」

コード:

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)
 }


 }
4

1 に答える 1