2011-06-11 5 views
7

Ho utilizzato estensivamente il supporto di blocco in ASIHttpRequest e ho trovato che è un modo estremamente elegante di codificare le richieste asincrone, molto più che avere il delegato richiamare un separatore functionUtilizzo di blocchi in Restkit (come ASIHttpRequest Blocks)

Ecco il codice di esempio per la consultazione rapida.

__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setCompletionBlock:^{ 
     NSString *responseString = [request responseString]; 
    }]; 
    [request startAsynchronous]; 

Vorrei iniziare a utilizzare Restkit, ma devo anche essere in grado di utilizzare il Restkit con i blocchi.

Ho visto l'involucro qui Restkit Block Wrapper, ma vorrei verificare se quel involucro dovrebbe funzionare bene nella produzione, e se qualcuno l'ho usato ampiamente prima

+1

Ming, ASIHTTPREQUEST è una libreria incredibilmente avanzata e altamente sviluppata. Davvero, è sbalorditivo - non c'è altra parola. Probabilmente è corretto dire che è di gran lunga la ** più affidabile ** libreria di terze parti di qualsiasi tipo nell'universo iOS. Immagino che la risposta molto breve alla tua domanda sia "no, nient'altro sarà affidabile". Spero che sia d'aiuto! – Fattie

risposta

8

non ho ancora usato l'involucro RestKit Block, ma io sarà a breve In realtà sto rimuovendo ASIHTTPRequest dalla mia app e la sostituzione con RestKit. Non perché sia ​​male, ASIHTTP * è abbastanza stabile, ma non si sta evolvendo. Mentre molte altre librerie, come RestKit, avvolgono NSURLConnection e raccolgono così i benefici dei continui miglioramenti apportati da Apple, ASIHTTP * utilizza CFNetwork. Apple non sta investendo molto per migliorare le preesistenti classi Core Foundation (come CFNetwork). Inoltre, poiché ASIHTTP * dipende da CF, sarà un dolore reale migrare ad ARC quando è disponibile; Non ho i vantaggi di ARC il prima possibile.

+0

In realtà sto solo costruendo una classe wrapper aggiuntiva su tutti i miei objectmapper, e funziona bene. ecco a desiderare che il kit di supporto supporti i blocchi quando raggiunge la v1! –

+0

Ben che ha creato ASIHTTPRequest in realtà ha appena annunciato sul suo blog che ha ufficialmente interrotto lo sviluppo su ASIHTTPRequest, anche per la ragione sopra menzionata: http://allseeing-i.com/[request_release]; – runmad

3

Ieri, Blake ha rilasciato verson 0.9.3 che presenta l'utilizzo di blocchi per l'Object Mapper (altri metodi erano già pronti per i blocchi). Dovresti dare un'occhiata alle nuove funzionalità.

7

blocchi di supporto per tutti i delegare compiti di base su RKRequest e RKObjectLoader sarà venuta in 0.9.4

+0

grazie mille! questa è una grande notizia. –

1

Per un esempio di codice veloce da usare RestKit con blocchi, ho derivato questo frammento da http://kalapun.com/blog/2012/05/17/how-i-restkit/

[[RKClient sharedClient] get:@"/fooBar" usingBlock:^(RKRequest *request) { 

    request.onDidLoadResponse = ^(RKResponse *response) { 

     NSLog(@"Retrieved XML: %@", [response bodyAsString]); 
    }; 
}];