2013-07-18 92 views
1

我得到的数据如下,我想获得像names= app,app1,app2没有循环的数据.how我可以实现这一个没有循环?如何获取字典数组中特定键的值?

(
     { 
     date = "12/12/12"; 
     name = app; 
    }, 
     { 
     date = "11/02/12"; 
     name = app1; 
    }, 
     { 
     date = "14/05/12"; 
     name = app2; 
    } 
) 

回答

6

是的,可以试试像这样,不需要采取任何循环的概念,这在有大量数据时非常有用。使用一键收藏价值运营商

NSString *str=[[array1 valueForKeyPath:@"name"] componentsJoinedByString:@","]; 
NSLog(@"desired string:%@",str); 


NSMutableDictionary *dict = [[NSMutableDictionary alloc]init]; 
    [dict setObject:@"app" forKey:@"name"]; 

    NSMutableDictionary *dict1 = [[NSMutableDictionary alloc]init]; 
    [dict1 setObject:@"app1" forKey:@"name"]; 


    NSMutableDictionary *dict2 = [[NSMutableDictionary alloc]init]; 
    [dict2 setObject:@"app2" forKey:@"name"]; 
    NSArray *array1 = [[NSArray alloc]initWithObjects:dict,dict1,dict2, nil]; 

    NSString *str=[[array1 valueForKeyPath:@"name"] componentsJoinedByString:@","]; 
    NSLog(@"desired string:%@",str); 

    O/P:- app,app1,app2 
5
NSArray * yourArray = @[ 
         @{ 
          @"date" : @"12/12/12", 
          @"name" : @"app" 
         }, 
         @{ 
          @"date" : @"11/02/12", 
          @"name" : @"app1" 
         }, 
         @{ 
          @"date" : @"14/05/12", 
          @"name" : @"app2" 
         } 
         ]; 

NSArray * selectedArray = [yourArray valueForKeyPath:@"@distinctUnionOfObjects.name"]; 
NSArray * sortedArray = [selectedArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { 
    return [obj1 compare:obj2]; 
}]; 
NSString * str = [NSString stringWithFormat:@"name=%@",[sortedArray componentsJoinedByString:@","]]; 
NSLog(@"%@",str); 

:看http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Conceptual/KeyValueCoding/Articles/CollectionOperators.html

相关问题