【问题标题】:How can I sort an NSDictionary?如何对 NSDictionary 进行排序?
【发布时间】:2010-04-23 05:11:21
【问题描述】:

O 有一个 NSDictionary。字典里面有一个数组。我想对字典进行排序并按升序显示它的值,所以请任何人帮助我如何获得排序数据?

【问题讨论】:

    标签: iphone


    【解决方案1】:

    NSDictionary 的三个功能...

     – keysSortedByValueUsingSelector:
     – keysSortedByValueUsingComparator:
     – keysSortedByValueWithOptions:usingComparator:
    

    【讨论】:

    • 如果你不介意请告诉我我想按“rname”排序的例子。请帮助我.. NSDictionary *dict = (NSDictionary *)[DataBaseAccess getRestaurantDetails]; NSLog(@"%@",dict); 2010-04-23 11:45:07.089 餐厅[2074:207] ({ raddress = "Cascal,Mountain View,CA."; rdistance = "7.96 英里"; rlatitude = "37.391167"; rlongitude = "-122.080974"; rname = 卡斯卡;rphno = 6509409500;})
    • 这只是字典的一个值,我想按名称对所有值进行排序,我必须显示,这样我才能使用这个函数..
    • 您的意思是您有多个字典并且您不会对其进行排序...?是否要对字典或字典中的数据进行排序...?
    • 按“rname”排序。所有数据都应相应地按 rname 排列。
    • 是的,但是你有每个 Record 的 NSDictionary *dict 对...?
    【解决方案2】:

    像这样使用 NSSortDescriptor..

    NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"name"  ascending:YES];
    [stories sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
    recent = [stories copy];
    

    Stories 是您要排序的数组。recent 是另一个已排序字典值的可变数组。使用您必须排序的键值更改“名称”。

    一切顺利

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多