wom*_*t57 13 iphone cocoa-touch core-data nssortdescriptor ios
我正在编写一个iOS应用程序,它具有人员记录存储,并且需要显示以特定方式排序的列表.这些排序有可变数量,它们是动态生成的,但我希望它们存储在数据存储区中.执行此操作的SQL方法是使ListPositions表具有列表名称,人员表中的id和排序键.然后,为了显示特定列表,我可以选择具有给定名称的所有列表ListPosition,拉入引用的人员,并对排序键进行排序.尝试在CoreDatat中执行此操作,但是我遇到了问题.我试图使用如下架构来做到这一点:
Person:
Name
DOB
etc...
positions -->> ListPosition
ListPosition:
listName
sortKey
person --> Person
Run Code Online (Sandbox Code Playgroud)
然后,我可以使用NSPredicate获取给定列表中的所有人员
[NSPredicate predicateWithFormat:@"ANY positions.listName like %@", someList];
这允许我针对大量人员动态添加列表.问题是我无法使用ListPosition的sortKey字段对Persons进行排序.NSSortDescriptor会做什么?如果无法对多对多关系的一个元素的属性进行获取,那么在coredata中获取多个动态排序的另一种方法是什么?我正在使用NSFetchedResultsController显示列表,因此我无法将这些列表放在内存中.我需要使用单个NSFetchRequest来完成它.
你是对的——遵循一对多的关系会返回一个 NSSet,它没有固有的排序。要获得排序结果,有几个选项:
[NSPredicate predicateWithFormat:@"person=%@", myPerson]. 在获取请求中使用您需要的任何排序描述符。-sortedArrayUsingDescriptors:方法将其转换为排序数组。| 归档时间: |
|
| 查看次数: |
5233 次 |
| 最近记录: |