2013-03-23 22 views
6

'ma problem z odwróceniem, aby posortować wartości na podstawie klucza przy użyciu obiektu słownika. Właściwie to, co przechowuję, to, że każdy obiekt słownikowy ma inny typ danych w tym słowniku, wszystkie typy danych przyjmują jako ciąg, jak przekonwertować ten typ ciągu do określonego typu danych i sortować imadres cenowy, mój kod i wyjście jest poniżej, proszę pomóż mi w tej sprawie.IOS musi posortować tablicę wartości słowników na podstawie ceny klucza

-(IBAction)PriceSort:(id)sender 
{ 
    NSSortDescriptor * sort = [[NSSortDescriptor alloc] initWithKey:@"Price" ascending:true] ; 
    NSArray *sa = [symbolArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]]; 
    NSLog(@"price=%@",sa); 

} 

się umieścić {

volume = 2496752; 

    Yield = "10.49"; 

    MarCap = 829; 

    Price = "0.715"; 

    Symbol = SAIPI; 

}, 
+0

Jak różne typy danych w słowniku można wyświetlić? –

Odpowiedz

10
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"price" 
               ascending:YES selector:@selector(localizedStandardCompare:)] ; 

Zastąp to i spróbuj, miej nadzieję, że działa.

+0

dziękuję, krish jego praca – Vijay

4
-(void)sort 
{ 
    //This is the array of dictionaries, where each dictionary holds a record 
    NSMutableArray * array; 
    //allocate the memory to the mutable array and add the records to the arrat 

    // I have used simple bubble sort you can use any other algorithm that suites you 
    //bubble sort 
    // 
    for(int i = 0; i < [array count]; i++) 
    { 
     for(int j = i+1; j < [array count]; j++) 
     { 
      NSDictionary *recordOne = [array objectAtIndex:i]; 
      NSDictionary *recordTwo = [array objectAtIndex:j]; 

      if([[recordOne valueForKey:@"price"] floatValue] > [[recordTwo valueForKey:@"remaining"] floatValue]) 
      { 
       [array exchangeObjectAtIndex:i withObjectAtIndex:j]; 
      } 
     } 
    } 

    //Here you get the sorted array 
} 

nadzieję, że to pomaga.

+0

Dziękuję kunal – Vijay

Powiązane problemy