Это должно сработать (от макушки):
NSMutableDictionary *pairs = [NSMutableDictionary dictionary];
for (NSString *pairString in [str componentsSeparatedByString:@"&"]) {
NSArray *pair = [pairString componentsSeparatedByString:@"="];
if ([pair count] != 2)
continue;
[pairs setObject:[pair objectAtIndex:1] forKey:[pair objectAtIndex:0]];
}
или вы можете использовать NSScanner
, хотя для такой короткой строки, как строка запроса, дополнительная пара массивов не повлияет на производительность.