核心数据排序描述符与NSDate,iOS与Swift [英] Core Data sort descriptor with NSDate, iOS with Swift
本文介绍了核心数据排序描述符与NSDate,iOS与Swift的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图根据日期属性过滤核心数据对象。
I am trying to filter core data objects depending on a date attribute.
这是我当前的代码:
func getFetchedResultController(selectedEntity: NSString){
let appDelegate : AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedObjectContext: NSManagedObjectContext = appDelegate.managedObjectContext!
let fetchRequest = NSFetchRequest()
let entity = NSEntityDescription.entityForName(selectedEntity as String, inManagedObjectContext: managedObjectContext)
fetchRequest.entity = entity
fetchRequest.fetchBatchSize = 20
let date = NSDate()
let sectionSortDescriptor = NSSortDescriptor(key: "timeStamp < %@",date)
let sortDescriptors = [sectionSortDescriptor] //, secondSortDescriptor]
fetchRequest.sortDescriptors = sortDescriptors
let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
aFetchedResultsController.delegate = self
self.fetchedResultsController = aFetchedResultsController
var error: NSError? = nil
if !self.fetchedResultsController.performFetch(&error) {
abort()
}
print(fetchedResultsController.fetchedObjects?.count ?? 0)
}
但我在行中遇到错误:
let sectionSortDescriptor = NSSortDescriptor(key: "timeStamp < %@",date)
如何更改此排序描述符以获取在timeStamp属性上具有较早或较新日期的对象?
How should I change this sort descriptor to get the objects that have an older or a newer date on the "timeStamp" attribute?
谢谢。
推荐答案
要获取满足某些条件的所有对象,您不需要
描述符而是一个谓词,例如:
To fetch all objects satisfying some condition you don't need a sort descriptor but a predicate, for example:
let predicate = NSPredicate(format: "timeStamp < %@", date)
fetchRequest.predicate = predicate
排序描述符以获得指定顺序中的对象
例如:
You need a sort descriptor to get the objects in a specified order, for example:
let sectionSortDescriptor = NSSortDescriptor(key: "timeStamp", ascending: true)
let sortDescriptors = [sectionSortDescriptor]
fetchRequest.sortDescriptors = sortDescriptors
这篇关于核心数据排序描述符与NSDate,iOS与Swift的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文