2016-10-11 4 views
0

Wir versuchen, eine swift2.3 AFNetworking Mock swift 3. Hier konvertieren Sie den Code Swift 2.3 ist:Konvertieren AFNetworking Swift 2.3 Mock to Swift 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() 
    } 
} 

Hier die schnelle 3-Code ist, dass wir es versucht, aber einen Kompilierungsfehler bekam, wenn wir die Überschreibung hinzugefügt vor den func POST:

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

     return AFHTTPRequestOperation() 

    } 

Es sagt das Verfahren kein Verfahren aus seiner übergeordneten Klasse nicht außer Kraft setzen.

Dies ist die Objective-C-Methode, die wir außer Kraft zu setzen versuchen:

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

Wir verwenden AFNetworking 2.5.1

Wie wir die AFHTTPRequestOperationManager POST-Methode oben richtig mit swift3 Syntax Sie außer Kraft setzen?

Antwort

1

Dies funktioniert:

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

     return AFHTTPRequestOperation() 

    }