2010-11-25 27 views

Répondre

1

Il existe des méthodes sur NSURL, que vous auriez besoin d'init de la chaîne, qui pourraient aider. Par exemple, - (NSString *) query qui vous donnerait 'name = XYZ & age = 26'. Vous pouvez ensuite utiliser componentsSeparatedByString(@"&") pour rassembler chaque argument et parcourir le tableau résultant jusqu'à atteindre la clé/valeur dont vous avez besoin. Peut-être quelque chose comme:

NSURL *url = [NSURL URLFromString:incomingString]; 
NSString *queryString = [url query]; 
NSArray *queryArray = [queryString componentsSeparatedByString(@"&")]; 

for (NSString *query in queryArray) 
{ 
    NSArray *arg = [query componentsSeparatedByString(@"="); 
    if ([arg count] != 2) continue; 

    if ([arg objectAtIndex:0] caseInsensitiveCompare:@"SOME_KEY"] == NSOrderedSame) 
    { 
    // do something, probably with [arg objectAtIndex:1] 
    } 

} 

Cependant, vous devez être conscient de l'encodage avec la chaîne entrante. Par exemple, le pourcentage d'évasions.

1

Essayez de diviser la chaîne avec la méthode de NSString

- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator 

utilisation "?", "=" Et "&" comme seperators et vous devriez être bon d'aller.