我一直在这里评论几个答案,发现大多数答案只是给出提供的代码作为解决此代码的答案,原因是因为提供的代码(请参阅提供的代码)工作得很好.
(由提问者提供)
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"]
不返回单个项目它返回一个NSArray
ID 的项目。因此,根据它是否是一个NSArray
它会记录类似joinedString is (55, 56, 57...)"
. 我们也知道它不能只是一个字符串,因为我们也只有一个值,所以它会记录一些这样的事情,这joinedString is 55,
又不是我们想要的。获得所提供的东西的唯一方法是拥有这样的东西
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
一旦提问者提供了缺失的代码,我将根据那里的代码更正他的答案,但在那之前我假设。