Parse NSDictionary to a string with custom separat

2020-07-09 10:39发布

问题:

I have an NSMutableDictionary with some values in it, and I need to join the keys and values into a string, so

> name = Fred
> password = cakeismyfavoritefood
> email = myemailaddress@is.short

becomes name=Fred&password=cakeismyfavoritefood&email=myemailaddress@is.short

How can I do this? Is there a way to join NSDictionaries into strings?

回答1:

You can easily do that enumerating dictionary keys and objects:

NSMutableString *resultString = [NSMutableString string];
for (NSString* key in [yourDictionary allKeys]){
    if ([resultString length]>0)
       [resultString appendString:@"&"];
    [resultString appendFormat:@"%@=%@", key, [yourDict objectForKey:key]];
}


回答2:

Quite same question as Turning a NSDictionary into a string using blocks?

NSMutableArray* parametersArray = [[NSMutableArray alloc] init];
[yourDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    [parametersArray addObject:[NSString stringWithFormat:@"%@=%@", key, obj]];
}];
NSString* parameterString = [parametersArray componentsJoinedByString:@"&"];
[parametersArray release];