I have a UITableView that displays a list of message subjects. When a message 
is deleted, it is marked as deleted, rather than actually removed from the MOC.

The list is backed by an NSFetchedResultsController. I initializes the FRC with 
a predicate:

NSEntityDescription* entity = [NSEntityDescription entityForName: @"NewsItem"
                                    inManagedObjectContext: 
appDelegate.managedObjectContext];

NSFetchRequest* req = [[NSFetchRequest alloc] init];
req.entity = entity;

NSPredicate* pred = [NSPredicate predicateWithFormat: @"deleted == false"];
req.predicate = pred;

NSSortDescriptor* sd = [[NSSortDescriptor alloc] initWithKey: @"date" 
ascending: false];
NSArray* sds = [[NSArray alloc] initWithObjects: sd, nil];
[sd release];
req.sortDescriptors = sds;
[sds release];

mFetchedResultsController = [[NSFetchedResultsController alloc]
                                initWithFetchRequest: req
                                managedObjectContext: 
appDelegate.managedObjectContext
                                sectionNameKeyPath: nil
                                cacheName: @"AlertsCache"];
[req release];

mFetchedResultsController.delegate = self;


But when UI actions cause an instance to have its deleted property set, while I 
get a changeUpdate notification, it doesn't seem to actually remove it from the 
fetchedResults. If I try to delete the table row for that item, it throws an 
exception, since there are too many items in the fetchedObjects array.

I tried issuing the performFetch again, but it has no effect.

When does the FRC actually send insert/delete notifications? Does it take any 
fetch predicates into account when it does this? If not, it's not very useful.

TIA,
Rick

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to