ここでいくつかの回答についてコメントしましたが、ほとんどの回答は、このコードを解決するための回答として提供されたコードを提供しているだけであることがわかりました。その理由は、提供されたコード (提供されたコードを参照) が完全に正常に動作するためです。 .
(質問者が提供)
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];
問題は、提供されていないコードにあります。これは、 IDの を返す個々のアイテムを返さないことがわかっているitem
ためです。したがって、それが のようなログに記録されるかどうかに基づいて。また、値が1つしかないため、文字列だけではないこともわかっているため、このようなものをログに記録しますが、これは必要なものではありません。提供されたものを取得する唯一の方法は、このようなものを持つことですNSDictionary
[item objectForKey:@"id"]
NSArray
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
質問者が不足しているコードを提供したら、そこのコードに基づいて回答するように彼を修正しますが、それまでは想定しています。