2010-07-25 4 views
1

Ceci est mon code:Faire une fonction pour se connecter dans l'objectif c

NSError *error; 
NSURLResponse *response; 
NSData *dataReply; 
NSString *stringReply; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: URLGOESHERE]]; 
[request setHTTPMethod: @"GET"]; 
dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
stringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding]; 

Je veux mettre cela en fonction soo que je peux l'appeler de tous mes autres boutons, mais je peux régler la

URLWithString: URLGOESHERE]]; 

Comment est-ce que je ferais ceci et comment l'appellerais-je?

Merci

Mason

Répondre

1

Voir l'explication ci-dessous pour savoir pourquoi cela est une idée mauvaise.

- (NSString *)sendRequestWithURLString:(NSString *)urlString { 
    NSError *error; 
    NSURLResponse *response; 
    NSData *dataReply; 
    NSString *stringReply; 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:urlString]]; 
    [request setHTTPMethod: @"GET"]; 
    dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    stringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding]; 
    return [stringReply autorelease]; 
} 

Puis

NSString *response = [self sendRequestWithURLString:@"....."]; 

Alors, prenez note, si vous appelez cela à partir d'un bouton, il va bloquer le thread principal jusqu'à ce qu'il se termine, ce qui est mauvais. Vous devez vous pencher sur des requêtes asynchrones, ou tout au moins utiliser dispatch_async.

+1

asynchrone? comment ferais-je ça? – user393273

+0

NSURLConnection a des méthodes asynchrones. – jtbandes

Questions connexes