2013-07-18 2 views

답변

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

관련 문제