使用块将NSDictionary转换为字符串?

can*_*boy 1 iphone objective-c nsdictionary ios objective-c-blocks

我确定有一种方法可以使用块来实现这一点,但我无法弄明白.我想将NSDictionary转换为url风格的参数字符串.如果我有一个看起来像这样的NSDictionary:

dict = [NSDictionary dictionaryWithObjectsAndKeys:@"blue", @"color", @"large", @"size", nil]];
Run Code Online (Sandbox Code Playgroud)

那我怎么把它变成一个看起来像这样的字符串:

"color=blue&size=large"
Run Code Online (Sandbox Code Playgroud)

编辑

感谢下面的线索.这应该这样做:

NSMutableString *parameterString;
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    [parameterString appendFormat:@"%@=%@&", key, obj];
}];
parameterString = [parameterString substringToIndex:[string length] - 1];
Run Code Online (Sandbox Code Playgroud)

Ben*_*oît 6

相同的解决方案,但没有子串:

NSMutableArray* parametersArray = [[[NSMutableArray alloc] init] autorelease];
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    [parametersArray addObject:[NSString stringWithFormat:@"%@=%@", key, obj]];
}];
NSString* parameterString = [parametersArray componentsJoinedByString:@"&"];
Run Code Online (Sandbox Code Playgroud)