我一直在评论这里的几个答案,并发现大多数答案只是给出的代码作为解决此代码的答案,原因是因为代码提供了(请参阅提供的代码)完美无瑕。
(通过提问题的人提供)
NSArray *array1 = [NSArray arrayWithObjects:[item objectForKey:@"id"], nil];
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
由于用户没有提供如何item
NSDictionary
创建我假设一个NSArray
已创建其中包含一些NSDictionaries
NSArray *array = [[NSArray alloc] initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"55", @"id", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"65", @"id", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"75", @"id", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"65", @"id", nil],
nil];
问题是没有提供的代码,因为我们知道item
是NSDictionary
我们知道[item objectForKey:@"id"]
不会返回个别项目它返回ids的NSArray
。所以根据它是否为NSArray
它会记录类似joinedString is (55, 56, 57...)"
。我们也知道,它不能只是一个字符串,因为我们也只有一个值,所以它会记录下这样的事情,并且这并不是我们想要的。让已经提供什么的唯一方法是有这样的事情
for(NSDictionary *item in array) {
NSArray *array1 = [NSArray arrayWithObjects:[item objectForKey:@"id"], nil];
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
}
因此,如果这是不是办法的情况下解决这个是做
NSMutableArray *array1 = [NSMutableArray array];
for(NSDictionary *item in array) {
[array1 addObject:[item objectForKey:@"id"]];
}
// Note that this doesn't need to be in a for loop `componentsJoinedByString:` only needs to run once.
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
这样做的输出会(如用户想)
joinedString is 55,65,75,65
一旦问题提问者提供缺少的代码,我会纠正他的回答基于存在的代码,但在那之前我假设。
joinedString = [joinedString stringByAppendingFormat:@“%@”,[array1 componentsJoinedByString:@“,”]]; – 2013-03-05 13:16:25
为什么不去一个nsstring类别或函数 – amar 2013-03-05 13:16:26
我不能相信你所展示的是,你的代码是正确的,尝试清理和再次构建。 – 2013-03-05 13:20:56