vivo unirse unirme ubicacion solicitud solicitar que puedo posible porque por mandar llamada hacer enviar disponible directo compartido como buscar amigos iphone ios xcode nsurlconnection nsurlrequest

iphone - unirse - cómo enviar una solicitud de URL asíncrona?



por que no puedo unirme a un directo en instagram (5)

Me gustaría saber cómo obtengo un valor de retorno de 1 o 0 solamente ... de regreso de una solicitud de URL de forma asincrónica.

actualmente lo hago de esta manera:

NSString *UTCString = [NSString stringWithFormat:@"http://web.blah.net/question/CheckQuestions?utc=%0.f",[lastUTCDate timeIntervalSince1970]]; NSLog(@"UTC String %@",UTCString); NSURL *updateDataURL = [NSURL URLWithString:UTCString]; NSString *checkValue = [NSString stringWithContentsOfURL:updateDataURL encoding:NSASCIIStringEncoding error:Nil]; NSLog(@"check Value %@",checkValue);

esto funciona, sin embargo, está bloqueando mi hilo principal hasta que recibí una respuesta de la URL, ¿cómo lo configuro para que lo haga en otro hilo en lugar del hilo principal?

EDITAR: RESPUESTA Termino de invocar mi función con esto, funciona bien :)

[self performSelectorInBackground:@selector(shouldCheckForUpdate) withObject:nil];


Desvergonzadamente copia de https://gist.github.com/knmshk/3027474 . Todos los créditos van a https://gist.github.com/knmshk .

xmlData = [[NSMutableData alloc] init]; NSURL *url = [NSURL URLWithString: @"http://forrums.bignerdranch.com/smartfeed.php?" @"limit=NO_LIMIT&count_limit20&sort_by=standard&" @"feed_type=RSS2.0&feed_style=COMPACT"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; //connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; NSOperationQueue *queue = [[NSOperationQueue alloc]init]; [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){ if (error) { xmlData = nil; NSLog(@"error:%@", error.localizedDescription); } [xmlData appendData:data]; }];


Hay un ejemplo en la documentación de XCode de iOS llamada LazyTableImages. Esto produce una URL asíncrona y una carga asíncrona de imágenes en UITableView celdas de UITableView se muestran en la pantalla una vez que se detiene el desplazamiento. Excelente ejemplo de protocolos, manejo asíncrono de datos, etc.


Use NSURLConnection y haga su pedido. Entonces puede iniciar una conexión sincrónica o asincrónica con los métodos de NSURLConnection:

Cargando datos sincrónicamente

+ sendSynchronousRequest:returningResponse:error:

Cargando datos asincrónicamente

+ connectionWithRequest:delegate: – initWithRequest:delegate: – initWithRequest:delegate:startImmediately: – start

Verifique la clase NSURLConnection en Apple Developer API Reference.


prueba esto :

.h:

NSMutableData *responseData;

.metro:

- (void)load { NSURL *myURL = [NSURL URLWithString:@"http://www.example.com"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60]; [[NSURLConnection alloc] initWithRequest:request delegate:self]; } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { responseData = [[NSMutableData alloc] init]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [responseData appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { [responseData release]; [connection release]; [textView setString:@"Unable to fetch data"]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"Succeeded! Received %d bytes of data",[responseData length]); NSString *txt = [[[NSString alloc] initWithData:responseData encoding: NSASCIIStringEncoding] autorelease]; }


puedes usar la clase NSURLConnection

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];

y manejar su respuesta y errores utilizando sus métodos delegados.

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error - (void)connectionDidFinishLoading:(NSURLConnection *)connection

Puede encontrar la implementación de NSURLConnection

Editar: aunque NSURLConnection es proporcionado por Apple, es una forma más recomendada de realizar una solicitud de URL. Pero encontré que la biblioteca de AFNetworking mucho tiempo, es fácil de implementar y robusta pero simple como la implementación de un tercero. Usted debe darle una oportunidad.