在 Swift 中从 Core Data 接收到的排序数组
Posted
技术标签:
【中文标题】在 Swift 中从 Core Data 接收到的排序数组【英文标题】:Sorting Array received from Core Data in Swift 【发布时间】:2014-08-28 12:14:29 【问题描述】:我的实体有一个 NSManagedObject
我自己的班级 (BPMonitor
) - BPMonitor
:
import UIKit
import CoreData
@objc(BPMonitor)
class BPMonitor: NSManagedObject
@NSManaged var sisPress: String
@NSManaged var diaPress: String
@NSManaged var hbPress: String
@NSManaged var datePress: NSDate
在代码中,我从核心数据接收数据到数组:
var results:[BPMonitor]=[]
...
...
如何按降序对字段datePress
(NSDate
) 的数组进行排序?
【问题讨论】:
【参考方案1】:您只需要使用 Swift 提供的标准 sort
或 sorted
函数即可:
var results: [BPMonitor] = []
var sortedResults = sorted(results,
$0.datePress.compare($1.datePress) == NSComparisonResult.OrderedDescending
)
【讨论】:
为什么在获取核心数据实体时不使用 NSSortDescriptor? 它让 Core Data 为您完成工作,虽然您可以在检索后进行排序,但这只是必须进行的额外操作。 NSFetchRequest 接受一组 NSSortDescriptor 对象,因此即使您只有一个 NSSortDescriptor,将其放入数组中,您应该没问题。以上是关于在 Swift 中从 Core Data 接收到的排序数组的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift Core Data 中从一对多关系中获取对象
如何在 Swift 中从 Core Data 访问子数据和父数据
IOS Swift Core Data如何在propertiesToFetch中添加不在propertiesToGroupBy中的字段
在 Core Data 中从 AppDelegate 执行回滚功能时需要访问 ManagedObjectContext 的同一实例