This code is in my Entity+CoreDataProperties.swift file:
@nonobjc public class func mFetchRequest() -> NSFetchRequest<Entity> {
return (getContext().persistentStoreCoordinator?.managedObjectModel.fetchRequestTemplate(forName: "MEntityRequest"))! as! NSFetchRequest<Entity>
}
In my NSFetchedResultsControllerDelegate extension code I call this function like so:
var fetchedResultsController: NSFetchedResultsController<Entity> {
if _fetchedResultsController != nil {
return _fetchedResultsController!
}
let fetchRequest: NSFetchRequest<Entity> = Entity.mFetchRequest()
// Edit the sort key as appropriate.
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext!, sectionNameKeyPath: nil, cacheName: "Master")
aFetchedResultsController.delegate = self
_fetchedResultsController = aFetchedResultsController
do {
try _fetchedResultsController!.performFetch()
} catch let error as NSError{
print("Unresolved Fetch Error \(error), \(error.userInfo)")
}
return _fetchedResultsController!
}
By setting the sortDescriptors on the fetch request I get the error: 'NSInternalInconsistencyException', reason: 'Can't modify a named fetch request in an immutable model.'
When I do not set the sortDescriptors: 'NSInvalidArgumentException', reason: 'An instance of NSFetchedResultsController requires a fetch request with sort descriptors'
What am I not doing correctly? Can NSFetchResultsController simply not use Fetch Request Templates?