Descriptor for sorting master data with NSDate, iOS with Swift

I am trying to filter the main data objects based on a date attribute.

This is my current code:

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) } 

But I get an error message:

 let sectionSortDescriptor = NSSortDescriptor(key: "timeStamp < %@",date) 

How do I change this sort descriptor to get objects with an older or newer date in the "TimeStamp" attribute?

Thanks.

+7
ios swift core-data
source share
2 answers

To get all objects that satisfy a certain condition, you do not need to sort the descriptor, but a predicate, for example:

 let predicate = NSPredicate(format: "timeStamp < %@", date) fetchRequest.predicate = predicate 

You need a sort descriptor to get objects in the specified order, for example:

 let sectionSortDescriptor = NSSortDescriptor(key: "timeStamp", ascending: true) let sortDescriptors = [sectionSortDescriptor] fetchRequest.sortDescriptors = sortDescriptors 
+25
source share

Swift 3.0 It works no problem for me

 let fec:NSFetchRequest = YourEntity.fetchRequest() let sortDescriptor = NSSortDescriptor(key: "type", ascending: true) fec.sortDescriptors = [sortDescriptor] let items = try! context.fetch(fec) 
+3
source share

All Articles