2013-07-18 91 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

相關問題