2016-10-11 2 views
0

スイフト2.3のコードです:ここではAFNetworking swift 2.3を模擬して3速に変換しますか?私たちは、ここで迅速な3にモックをAFNetworking swift2.3を変換しようとしている

class MockAFHTTPRequestOperationManager : AFHTTPRequestOperationManager { 

    var capturedPOSTURL = "" 
    var capturedPOSTParameters: Dictionary<String, String> = [:] 

    internal override func post(_ URLString: String!, parameters: AnyObject!, success: ((AFHTTPRequestOperation?, AnyObject?) -> Void)!, failure: ((AFHTTPRequestOperation?, NSError?) -> Void)!) -> AFHTTPRequestOperation! { 
     capturedPOSTURL = URLString 
     capturedPOSTParameters = parameters as! Dictionary 
     return AFHTTPRequestOperation() 
    } 
} 

は、我々がしようとした迅速な3コードがあるが、私たちはオーバーライドを追加したときにコンパイルエラーを得ましたfunc POST

func POST(URLString: String, parameters: AnyObject, success: (_ operation: AFHTTPRequestOperation, _ responseObject: AnyObject) -> Void, failure: (_ operation: AFHTTPRequestOperation, _ error: NSError) -> Void) -> AFHTTPRequestOperation { 

     return AFHTTPRequestOperation() 

    } 

このメソッドは、そのスーパークラスのメソッドをオーバーライドしません。私たちは、どのように我々はswift3構文で上記の適切AFHTTPRequestOperationManager POSTメソッドをオーバーライドしない2.5.1

をAFNetworking使用している

- (AFHTTPRequestOperation *)POST:(NSString *)URLString 
         parameters:(id)parameters 
         success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success 
         failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; 

これは、我々が上書きしようとしているのObjective-Cメソッドのですか?

答えて

1

これは動作します:

override func post(_ URLString: String, parameters: Any, success: ((_ operation: AFHTTPRequestOperation, _ responseObject: Any) -> Void)! , failure: ((_ operation: AFHTTPRequestOperation, _ error: Error) -> Void)!) -> AFHTTPRequestOperation { 

     return AFHTTPRequestOperation() 

    } 
関連する問題