我一直在評論這裏的幾個答案,並發現大多數答案只是給出的代碼作爲解決此代碼的答案,原因是因爲代碼提供了(請參閱提供的代碼)完美無瑕。
(通過提問題的人提供)
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