2012年2月7日 星期二

[iOS Dev] Parse query string into dictionary

- (NSDictionary *)parseQueryString:(NSString *)query {
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:6];
NSArray *pairs = [query componentsSeparatedByString:@"&"];
for (NSString *pair in pairs) {
NSArray *elements = [pair componentsSeparatedByString:@"="];
NSString *key = [[elements objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *val = [[elements objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[dict setObject:val forKey:key];
}
return dict;
}
Usage:
NSString *qs = @"username=hank&age=27&blog=whhnote.blogspot.com";
NSDictionary *queryParams = [self parseQueryString:qs];
NSLog(@"%@", queryParams);
NSLog(@"%@", [queryParams objectForKey:@"username"]); // get username from dict
So, you will get a dictionary look like
{
    age = 27;
    blog = "whhnote.blogspot.com";
    username = hank;
}
Related Posts Plugin for WordPress, Blogger...