2009-12-23 7 views
1

Google Docs renvoie une longue chaîne de 3 lignes lorsqu'elle est fournie avec des informations d'identification. Ceci est le format SID = choses ... LSID = choses ... Auth = longue jeton d'autorisationiPhone API Google Data Protocole HTTP, jeton d'authentification de la chaîne

si je l'ai stocké dans NSString, quelle est la meilleure fonction de couper tout le chemin jusqu'à la " = "derrière Auth, et garder le reste?

NSData *returnedData = [NSURLConnection sendSynchronousRequest:request returningResponse:theResponse error:NULL]; 
NSString *newDataString = [[NSString alloc]initWithData:returnedData encoding:NSUTF8StringEncoding]; 
NSString *authToken = [newDataString ____________]; 

Répondre

2

Je compris la réponse moi-même à travers la documentation NSString:

il y a une méthode appelée - (NSArray *) componentsSeparatedByCharactersInSet: (NSCharacterSet *) séparateur {

qui rend un tableau de différentes chaînes, séparées par un NSCharacterSet.

Il existe une méthode de classe de NSCharacterSet appelé

+ (NSCharacterSet *) newLineCharacterSet {

qui va diviser une chaîne avec le retour à la ligne en morceaux, de sorte que chaque ligne devient son propre objet. Voilà comment cela fonctionne:

NSData *returnedData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:NULL]; 
NSString *newDataString = [[NSString alloc]initWithData:returnedData encoding:NSUTF8StringEncoding]; 
NSCharacterSet *theCharacterSet = [NSCharacterSet newlineCharacterSet]; 
NSArray *lineArray = [newDataString componentsSeparatedByCharactersInSet:theCharacterSet]; 

Maintenant, le LineArray d'objet contient des chaînes différentes, chacun est le début d'une nouvelle ligne.

De rien!

1

Si elle est une chaîne de trois lignes, je suppose qu'il est divisé avec des caractères de nouvelle ligne (\n).

NSArray *_authComponents = [threeLineString componentsSeparatedByString:@"\n"]; 
NSString *_sidToken = [_authComponents objectAtIndex:0]; // "SID=..." 
NSString *_lsidToken = [_authComponents objectAtIndex:1]; // "LSID=..." 
NSString *_authToken = [_authComponents objectAtIndex:2]; // "Auth=..." 

Espérons que vous avez commencé. Une fois que vous avez des composants individuels, vous pouvez répéter sur le caractère égal (=), par exemple.