2013-03-23 5 views
6

'm сталкивается с проблемой сортировки значений на основе ключа с использованием словарного объекта. Фактически, что я храню, каждый объект словаря, имеющий другой тип данных в этом словаре, все типы данных, принимающие в качестве строки, как преобразовать этот тип строки в конкретный тип данных и отсортировать его по типу цен, мой код и выложить ниже, пожалуйста помоги мне на этом.IOS необходимо отсортировать массив значений словарей на основе цены ключа

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

} 

из положить {

volume = 2496752; 

    Yield = "10.49"; 

    MarCap = 829; 

    Price = "0.715"; 

    Symbol = SAIPI; 

}, 
+0

Как отличаются типы данных в словаре, можете ли вы их показать? –

ответ

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

Пожалуйста, замените этот и попробуйте, надеюсь, его работы.

+0

спасибо, криш, его работа – 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 
} 

Надеется, что это помогает.

+0

Спасибо kunal – Vijay

Смежные вопросы