[英]How can I convert the values is an NSDictionary into an NSString?
我在Objective-c中有一个方法,它接受一个NSDictionary
并将值作为空格分隔的NSString
。 这个应用程序是跨平台的,因此我不能使用快速枚举。 这是我到目前为止,后面是输出(显示从未创建String):
-(NSString *)stringValuesFromDict:(NSDictionary *map)
{
NSArray *values = [map allValues];
NSString *params = [NSString string];
NSLog(@"values length: %d", [values count]);
NSLog(@"values = %@", [values description]);
for (int i = 0; i < [values count]; i++)
{
[params stringByAppendingString:[values objectAtIndex:i]];
[params stringByAppendingString:@" "];
}
NSLog(@"params = %@", params);
return params;
}
NSDictionary
:
{"arg1"="monkey"}
输出:
values length: 1
values = (
monkey
)
params =
我究竟做错了什么? 我怎样才能让params
被设置为monkey
?
如果我正确地阅读了这个问题,你所需要的只是
[[dict allValues] componentsJoinedByString:@" "]
你需要一个可变的字符串。 改变这个:
NSString *params = [NSString string];
对此:
NSMutableString *params = [NSMutableString string];
然后改变这些:
[params stringByAppendingString:[values objectAtIndex:i]];
[params stringByAppendingString:@" "];
这些:
[params appendString:[values objectAtIndex:i]];
[params appendString:@" "];
stringByAppendingString:返回一个新字符串。 所以你必须做这样的事情:
params = [params stringByAppendingString:[values objectAtIndex:i]];
但是缺点是,每次创建新字符串时,都会浪费内存。您应该改用NSMutableString。 然后你就可以打电话了
[params appendString:[values objectAtIndex:i]];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.