0
我有一個問題。我的任務是從CoreData獲取用戶,並根據他們的分數總和進行排序。加快我的排序
因此,我想出了: 1.我從CoreData獲取用戶。 2.我用對它們進行排序:
users = users?.map({ (user) -> (User, Int) in
return (user, (user.tasks as! Set<Task>).reduce(0, { $0 + ($1.score!.intValue)})
}).sorted(by: { (e1, e2) -> Bool in
return e1.1 > e2.1
}).map({ (user, sum) -> User in
return user
})
這工作,但整個過程是非常緩慢的。有沒有更好的方式實現我的目標?
編輯:
好吧,我加了相關moels:
我也試過NSSortDescriptor
,但我沒有找到任何方式在讀取請求我的數據進行排序。
*「非常慢」*確實意味着什麼?您可能不應該手動對用戶進行排序,但可以在覈心數據提取請求中對它們進行排序,或者不管您如何檢索它們。 – luk2302
排序需要大約1秒 – Axel
我們在談論多少個用戶對象? – luk2302