2013-03-25 97 views
0

我試圖將NSArray轉換爲NSString其中包含NSDictionary,我可以通過數組實現迭代並將字符串追加到最後一個,但我認爲應該有一些簡單的方法來實現這一點像componentsJoinedByString:有沒有將NSArray轉換爲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 2013-03-25 08:59:55

+1

永遠記得valueForKey是KVC,objectForKey是nsdict的。這裏你使用的是KVC ......這可以返回數組,而objForKey返回一個obj, – 2013-03-25 09:04:00