如何在NSString Date键上排序NSDictionary基础?

时间:2015-10-16 12:05:11

标签: ios objective-c nsdictionary

如何根据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 个答案:

答案 0 :(得分:3)

我建议重组:

  1. ChatMessage@property NSDate *dateSent)上添加发送日期属性。它应该已经有一个,因为它是消息的重要属性。
  2. 将聊天消息保存在NSArray,这是订购的集合类。
  3. 按如下方式对聊天消息进行排序:

    NSSortDescriptor *dateDescriptor = [NSSortDescriptor
                                     sortDescriptorWithKey:@"dateSent" 
                                                 ascending:YES];
    NSArray *sorted = [unsorted
         sortedArrayUsingDescriptors:@[dateDescriptor]];