首页 文章

核心数据获取请求优化与段控制

提问于
浏览
0

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

目前我有一个fetchresult控制器,每当段控制中有值更改时,我从具有不同谓词的同一实体获取数据,并使用新数据重新加载表 .

我希望优化这一点 . 我是以正确的方式做到这一点还是以正确的方式做到了这一点?

另外,对于已经获取的数据,更改升序和降序之间的排序顺序的最佳方法是什么 .

谢谢你 .

2 回答

  • 0

    你可以发布一些代码片段吗?

    如果您已经获取了一组MangedObjcts,则可以使用Sort Descirptor对NSArray重新排序:sortedArrayUsingDescriptors

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

    如果您只获取少量NSManagedObjects,则可能没有太多优化要做 . CoreData及其相应的类(例如您正在使用的FetchResultsController,旨在与UITableViews特别合作)为您完成大部分繁重工作 .

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

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

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

相关问题