2016-11-18 168 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