Как отсортировать ниже NSDictionary базы по ключам даты NSString?

Как мне отсортировать ниже NSSDictionary на основе ключей, которые являются датами в NSString Формат?

Printing description of dictMessageWithDate:
{
    "06:10:2015" =     (
        "<ChatMessage: 0x78e108c0>"
    );
    "25:09:2015" =     (
        "<ChatMessage: 0x78fe8740>",
        "<ChatMessage: 0x78ff5e50>",
        "<ChatMessage: 0x78ff58b0>",
        "<ChatMessage: 0x790205c0>",
        "<ChatMessage: 0x7901ee00>",
        "<ChatMessage: 0x79025990>",
        "<ChatMessage: 0x7901f190>",
        "<ChatMessage: 0x78faab50>",
        "<ChatMessage: 0x78ff8ff0>",
        "<ChatMessage: 0x78ff9860>",
        "<ChatMessage: 0x78ffa1c0>",
        "<ChatMessage: 0x78ffa490>",
        "<ChatMessage: 0x78ff6810>",
        "<ChatMessage: 0x78f98720>",
        "<ChatMessage: 0x78f99790>",
        "<ChatMessage: 0x78f42eb0>"
    );
    "28:09:2015" =     (
        "<ChatMessage: 0x78ffad90>"
    );
    "29:09:2015" =     (
        "<ChatMessage: 0x78ff1de0>",
        "<ChatMessage: 0x78edad20>",
        "<ChatMessage: 0x78e7a9d0>"
    );
    "30:09:2015" =     (
        "<ChatMessage: 0x78ec3ac0>"
    );
}

1 ответ

Я бы порекомендовал реорганизацию:

  1. Поместить дату отправки собственности на ChatMessage (@property NSDate *dateSent). У него уже должен быть один, так как это важное свойство сообщения.
  2. Храните сообщения чата в NSArray, который является упорядоченным классом коллекции.
  3. Сортировать сообщения чата, как это:

    NSSortDescriptor *dateDescriptor = [NSSortDescriptor
                                     sortDescriptorWithKey:@"dateSent" 
                                                 ascending:YES];
    NSArray *sorted = [unsorted
         sortedArrayUsingDescriptors:@[dateDescriptor]];
    
Другие вопросы по тегам