2015-01-14 2 views
0

Я знаю, что сортировка простого массива, но это сложно. У меня есть сортировка по индексу массива еще один параметр массива, который я должен сортировать, простым способом я столкнулся с еще одним значением массива, поэтому я путаю, как сортировать этот тип области. Вот мой массив это значение индекса нет 0, в этом имя массива TODAY значение параметра массива check_in я должен сортироватьIos nsarray сортировка, когда в индексе еще одно значение массива

{ 

     address = dsfsd; 
     allergies = Dsf; 
     annotation = Sdf; 
     "birth_date" = "0000-00-00"; 
     "category_id" = 2; 
     "child_id" = 3; 
     today =   { 
      "check_in" = "7:30 AM"; 
      "check_out" = "7:30 AM"; 
      "child_id" = 3; 
      "children_schedule_id" = 6; 
      day = Wednesday; 
      "on_off" = 1; 
     }; 
     weight = sdfsd; 
     "work_hours" = dsfds; 
    }, 

вот мой код

NSSortDescriptor *firstDescriptor = [[NSSortDescriptor alloc] initWithKey:@"today.check_in" ascending:YES]; 
        NSArray *sortDescriptors = [NSArray arrayWithObjects:firstDescriptor, nil]; 
        aryOne = [getData sortedArrayUsingDescriptors:sortDescriptors]; 

ответ

0

Использование sortedArrayUsingComparator для сложных видов.

NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { 
    NSString *checkIn1 = obj1[@"today"][@"check_in"]; 
    NSString *checkIn2 = obj2[@"today"][@"check_in"]; 
    // You could convert them to dates or times here if you want. Or just compare the strings. 
    return [checkIn1 compare:checkIn2]; 
}]; 
+0

Здравствуйте, сэр, я не понимаю, почему мы используем параметр checkIn2 И что я должен преобразовать checkin1 или проверить 2 – Nishant

+0

Ваш Компаратор будет сравнить два объекта: '' obj1' и obj2'. Здесь мы присвоили 'checkIn1' значение' @ "check_in" '' obj1'. Аналогично, 'checkIn2' было присвоено значение' @ "check_in" 'из' obj2'. Эти значения сравниваются, и результат возвращается из блока в процесс сортировки. –

+0

Своя работая Спасибо, только один вопрос этот код возвращает убывающий порядок, но я хочу по возрастанию .... пожалуйста, помогите мне – Nishant

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