ios - 如何根据 NSString 日期键在 NSDictionary 下方排序?

标签 ios objective-c nsdictionary

如何根据 NSString 格式的日期键对下面的 NSSDictionary 进行排序?

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. ChatMessage (@property NSDate *dateSent) 上放置一个date sent 属性。它应该已经有了一个,因为这是消息的一个重要属性。
  2. 将聊天消息保存在 NSArray 中,这是一个有序集合类。
  3. 像这样对聊天消息进行排序:

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

关于ios - 如何根据 NSString 日期键在 NSDictionary 下方排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33170106/

相关文章:

ios - 哪个版本的 UUID 的第 3 部分的第一个字符是 0?

html - 在 iPhone 上自动播放内嵌的 youtube 视频

iphone - 网址连接 IOS 5

iphone - 水平和垂直两个方向滚动

ios - Swift ios - 将 key=value 文本文件读入 nsdictionary

ios - 如何在 objective-c 中从NSDictionary获取UIImage

ios - iOS前台启动图像

ios - 如何调试静默远程通知

ios - 用相机拍照旋转asset.fullScreenImage 90度?

ios - 在swift中过滤字典