在 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 提供的标准 sortsorted 函数即可:

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 访问子数据和父数据

如何在 Swift 中从 Firebase 接收数组

IOS Swift Core Data如何在propertiesToFetch中添加不在propertiesToGroupBy中的字段

在 Core Data 中从库中保存和获取多个图像选择

在 Core Data 中从 AppDelegate 执行回滚功能时需要访问 ManagedObjectContext 的同一实例