Ich verwendete NSURLProtocol, um die aus dem Webview erstellte Anforderung zu bearbeiten. Ich habe versucht, die Anfrage von Host zu IP-Adresse zu konvertieren, und dann senden Sie es aus. Ich setze diese Logik inDie Verwendung der asynchronen Methode innerhalb einer Methode hat den Rückgabetyp
0
A
Antwort
0
Hier ist die Antwort, steckte es eine Wrapper-Methode asynchrone Methode zu machen, die es wie eine synchrone Methode verhalten machen und Wert zurückgeben. Es verwendet grundsätzlich eine while-Schleife, um die Rückgabe zu blockieren.
how to wrap an asynchronous method that takes a block and turn it synchronous in objective c
0
Sie können Blockparameter verwenden, um Wert in Block zurückzugeben, dann laden Sie diese Anforderung in Abschlussbehandlungsblock.
+ (void)canonicalRequestForRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLRequest *request))completionHandler {
// Here is an asynchronous method which gives a NSString by using a block.
// I need to convert this NSString back to NSURLRequest,
// so the webview can load the content.
// call completionHandler inside of asynchronous block
completionHandler(returnRequest);
}
Seit + (NSURLRequest *) canonicalRequestForRequest: (NSURLRequest *) Anfrage: ist Methode von der abstrakten Klasse NSURLProtocol, ich denke, das dont't ein solution.https: //developer.apple.com/library /mac/documentation/Cocoa/Reference/Foundation/Classes/NSURLProtocol_Class/index.html#//apple_ref/occ/clm/NSURLProtocol/canonicalRequestForRequest: – Gavin