I want to make changes to an NSManagedObject, but without firing the NSFetchedResultsController delegate methods. However, I do want to still have the changes propagate to the contexts, so that if I fetch based on these changes, the results do show up. I’ve tried the recommendation made in this answer, however the problem with this is that if I fetch based on these changes, I get no results, so not only are the delegate methods not firing (the desired result), but the context isn’t made aware of these changes (an undesired result).
My goal is to strictly prevent ONLY the NSFetchedResultsController delegate methods from firing when changes to certain properties are made, but I still want all other functionality to remain, such as KVO and whatever Core Data does behind the scenes to make sure contexts are made aware of the changes.
NSFetchedReresultsController will listen to notifications from the related entity on the related context. What you need to do is introduce some logic inside your delegate methods where you discard any update to the UI (if any) if the context did some changes to an object that you would like to ignore. If you are using the NSFetchedResultsController instance in full persistent tracking mode,the delegate methods will be called. It’s the main purpose of NSFetchedResultsController.