2013-03-25 3 views
0

Я пытаюсь преобразовать NSArray в NSString, который содержит NSDictionary, я могу добиться этого с помощью итерации через массив и добавить строку с последней, но я думаю, что должен быть какой-то простой способ достичь этого componentsJoinedByString:Есть?convert NSArray to NSString содержит NSDictionary

Образец массива У меня есть,

[O] = {имя "ABC", возраст = "19", пакет = "3.4"}

[1] = {имя "PQR", возраст = "33", пакет = "5.0"}

[2] {имя = "XYZ", возраст = "24", пакет = "2.2"}

Что сейчас делают,

NSString *name = @""; 
NSString *age = @""; 
NSString *package = @""; 

for(NSDictionary *p in array) 
{ 
    name = [name stringByAppendingFormat:@"%@,",[p valueForKey:@"name"]]; 

    age = [age stringByAppendingFormat:@"%@,",[p valueForKey:@"age"]]; 

    package = [package stringByAppendingFormat:@"%@,",[p valueForKey:@"package"]]; 
} 

name = [name substringToIndex:[name length] - 1]; 
age = [age substringToIndex:[age length] - 1]; 
package = [package substringToIndex:[package length] - 1]; 

NSLog(@"%@",name); 
NSLog(@"%@",age); 
NSLog(@"%@",package); 

Есть ли более простой способ получить это?

ответ

2

Сделать это просто:

Если у вас есть array содержит объекты NSDictionary.

NSString *name = [[array valueForKey:@"name"] componentsJoinedByString:@","]; 
NSString *age = [[array valueForKey:@"age"] componentsJoinedByString:@","]; 
NSString *package = [[array valueForKey:@"package"] componentsJoinedByString:@","]; 

NSLog(@"%@",name); 
NSLog(@"%@",age); 
NSLog(@"%@",package); 
+1

Awww! Не знаю, почему я этого не пробовал. Спасибо! :) – Hemang

+1

всегда помнить valueForKey - это KVC, objectForKey - это nsdict's. Здесь вы используете KVC ... это может возвращать массивы, тогда как objForKey возвращает один объект, –

Смежные вопросы