【问题标题】:Multiple sort descriptors多个排序描述符
【发布时间】:2011-11-05 05:46:49
【问题描述】:

指定多个排序描述符时:

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:lastName, firstName, age, nil];

假设 lastName、firstName 和 age 都是 NSSortDescriptor 类型,并且有他们的名字建议的键。

我只是想了解当我这样做时会发生什么。假设我有一些核心数据(例如人员列表),我使用这些排序描述符对其进行排序。它会先尝试对姓氏进行排序,然后如果姓氏相同,则尝试按名字排序(仅姓氏相同的那些记录),然后如果名字和姓氏相同,它会尝试按年龄排序(仅针对那些记录)作为最后的手段。还是按姓氏对列表进行排序,然后返回并按名字再次排序,然后再次返回并按年龄排序?

【问题讨论】:

    标签: iphone objective-c core-data nssortdescriptor


    【解决方案1】:

    它会做你想做的事——第一个。我怀疑技术实现与您描述的一样,但结果是一样的。

    实现技术实现的一种方法是对每个排序运行直接排序,但以相反的顺序运行它们(三级排序,然后是二级排序,然后是初级排序)。这将产生您想要的结果的净效果,并且不需要每个排序都注意到其他排序,而是在主键上产生排序,按次键排序,再排序再次按第三键。但是,可能还有数据库能够使用的更有效的排序实现。好消息是你不需要知道它是如何工作的——它就是这样。 :)

    【讨论】:

    • 完美,正是我需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 2016-05-15
    • 2014-02-12
    • 2011-03-24
    • 1970-01-01
    • 2013-01-12
    相关资源
    最近更新 更多