Je suis un expert complet de l'objectif-C, donc cela pourrait être une question très stupide pour beaucoup d'entre vous.iPhone Objective-C: combiner des méthodes ensemble
Actuellement, j'ai une vue avec un bouton 'SignIn', qui, quand on clique dessus, active un IBAction sigupUp que j'ai défini ci-dessous. Fondamentalement, cette méthode doit faire un appel JSON et récupérer des données sur l'utilisateur.
Ainsi, en ce moment, mon code ressemble à ceci:
-(IBAction)signIn:(id)sender{
//run registration API call
//establish connection
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.apicallhere.com/api/auth"]]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];
[request setHTTPBody:postData];
[[NSURLConnection alloc]initWithRequest:request delegate:self];
responseData = [[NSMutableData data] retain];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{[responseData setLength:0];}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{[responseData appendData:data];}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{/*NSLog(@"%@",error);*/}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSString *response=[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
....code carries on from here.
}
Comme vous pouvez le voir, le problème avec mon code est que même si elle est initiée par la méthode « SignUp », il se termine par la méthode 'connectionDidFinishLoading'. Je veux avoir tout ce code dans une seule méthode. Pas 2 séparés, car je veux être en mesure de retourner un booléen vérifiant si la connexion a réussi ou non.
Si quelqu'un pourrait me dire comment coder cette procédure en une seule méthode, je l'apprécierais vraiment.
s'il vous plaît formater le code, sinon, je ne vois rien – vodkhang
* Je veux avoir tout ce code dans une seule méthode. Pas 2 séparés, comme je veux être en mesure de retourner un booléen vérifiant si la connexion a été réussie ou non. * En fait, vous pouvez penser que vous voulez cela, mais la première fois que vous obtenez un délai DNS en essayant de vous connecter, vous Je me rends compte que vous n'en voulez pas, et que personne d'autre ne le veut. Il serait préférable de maintenir un certain état dans votre application afin que vous sachiez à quel point vous avez obtenu avec le processus. Vous pouvez ensuite désactiver tous les contrôles sauf "annuler la connexion" jusqu'à ce que la connexion soit terminée. – JeremyP