2016-06-21 11 views
0

Ich mache eine App, die zahlreiche APIs hat, jede API-Antwort muss in die Kerndaten importiert werden. Ich bin mir bewusst, Alamofire Abschluss-Handler wird standardmäßig im Haupt-Thread sein. Ich möchte dies in Hintergrundthread ändern, da ich Core-Datenimportoperation in der Anforderungsvervollständigung durchführen würde. Kannst du mir bitte erklären, wie ich meinen Hintergrund-Thread als Standard-Thread in der Anfrage abschließen kann?Wie ändere ich die Warteschlange für die Standardanforderung?

Ich hasse diese in jeder API-Anforderung zu setzen, stattdessen würde ich dies in einzelner Stelle setzen will, wie ich immer in AFNetworking tun, die Eigenschaft completionQueue im AFHTTPSessionManager genannt hatte, so habe ich Unterklasse für AFHTTPSessionManager ich dann änderte leicht den Standardfaden. Ich finde keine ähnliche Sache in Alamofire. Bitte führen Sie mich mit besserer Lösung

Antwort

3

Almofire bietet keine Methode zum Ändern der Abschlusswarteschlange. Aber Sie können die Request Klasse erweitern und eine eigene Antwort Methode hinzufügen:

extension Request { 

    public func responseOnCustomQueue(completionHandler: (NSURLRequest?, NSHTTPURLResponse?, NSData?, NSError?) -> Void) -> Self { 
     let queue = dispatch_get_main_queue() // custom queue for all requests 
     return self.response(queue: queue, completionHandler: completionHandler) 
    } 
    } 

Auf diese Weise haben Sie nicht die benutzerdefinierte Warteschlange jedes Mal angeben.

Verwandte Themen