2016-11-18 75 views
-1

目前我有一个核心数据的应用程序,它具有一个视图控制器,它需要对UITableView进行特定的排序。一个实体可以有event_nameassigned_time以及其他属性。基本思想是如果一个事件被分配到更近的时间,那么该事件将首先在tableview中显示。按日期排序,按名称核心数据

我想知道的是,通过assigned_time排序我的信息的最佳方式是什么,而event_name是怎么回事?我曾尝试使用NSSortDescriptor,其中部分为assigned_time,但我最后只是按名称排序,而没有早先时间的事件先排在列表中。

基本上我想要实现类似的东西,以电子邮件线程是如何工作的,其中有一个更近assigned_time进来,为什么部分顺序取决于时间

我的代码为NSFetchRequest将推部分在列表因此实体如下:

func getFetchRequest() -> NSFetchRequest<NSFetchRequestResult> { 
     let request = NSFetchRequest<NSFetchRequestResult>(entityName: "EntitySet") 
     request.predicate = ... 
     let eventSort = NSSortDescriptor(key: "event_name", ascending: true) 
     let timeSort = NSSortDescriptor(key: "assigned_time", ascending: false) 
     request.sortDescriptors = [eventSort, timeSort] 
     return request 
} 
+0

哪里是你的代码?你有什么尝试?你会得到更多更好的答案如果你展示你的尝试,并表明你已花时间去尝试帮助自己。请参阅[问] –

回答

0

试试这个:

var request : NSFetchRequest<NSFetchRequestResult>! 
request.sortDescriptors = [NSSortDescriptor(key: "event_name", ascending: true), NSSortDescriptor(key: "assigned_time", ascending: true)] 
request.propertiesToGroupBy = ["event_name"] 
+0

如果这是我的部分,我不需要在'event_name'上指定一个顺序吗? – user3536057

+0

你说你想按assign_time排序然后按event_name分组? – CZ54

+0

是的,所以'event_name'将成为我的tableview节标题。我可能会误解,但是我在某个地方阅读过,您必须为您的部分指定排序顺序? – user3536057