【问题标题】:Core data fetch request optimization with segment control使用段控制优化核心数据获取请求
【发布时间】:2012-02-06 23:50:43
【问题描述】:

我有一个包含 5 个项目的段控件,在选择每个项目时,数据会根据某些条件进行过滤,并显示不同的结果。段控制中的所有五个选项都使用相同的实体来获取数据。

目前我有一个 fetchresultcontroller,每当段控件中的值发生变化时,我都会从具有不同谓词的同一实体中获取数据,并使用新数据重新加载表。

我希望对此进行优化。我这样做是正确的还是正确的方法是什么?

对于已获取的数据,更改升序和降序排序顺序的最佳方法是什么。

感谢您的建议。

【问题讨论】:

    标签: iphone ios optimization core-data uisegmentedcontrol


    【解决方案1】:

    你能发布一些代码sn-ps吗?

    如果您已经获取了一组 MangedObjct,您可以使用排序描述符重新排序 NSArray:sortedArrayUsingDescriptors

    - (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
    

    【讨论】:

      【解决方案2】:

      如果您只获取少量的 NSManagedObjects,则可能不需要进行太多优化。 CoreData 及其相应的类(例如您正在使用的 FetchResultsController,它旨在与 UITableViews 一起工作得特别好)为您完成大部分繁重的工作。

      就在升序和降序之间改变排序顺序的最佳方式而言;这是这样确定的:

      NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"someEntityProperty" ascending:YES/NO];
      

      如果您将升序设置为“是”,您将在您提供的键上让您的 NSManagedObjects 按从小到大的升序排序。如果您将其设置为 NO,您将让它们从最大到最小(降序)返回。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-11
        • 2019-11-06
        • 2013-04-02
        相关资源
        最近更新 更多