0
votes

I have iOS application which uses core data database and im using NSFetchedResultsController for populate a tableview. Im using entity named "Catalog" to populate tablview and i have thumbnail image stored in entity Named "Image" and i store image as NSData in a property of image entity, im updating that thumbnail image after populating the tableview but any of bellow methods not called.

  • (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
  • (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath
  • (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id )sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type
  • (void)controllerDidChangeContent:(NSFetchedResultsController *)controller

  • But when i change a properties of "Catalog" entity itself those methods called.

Informations of My Entities

Catalog(Entity)

Attributes

title <= String nid <= String (my primary key field) some few attributes

Relationships

Relationship :thumbImage, Destination :Image, Inverse :catalog,

Image(Entity)

Attributes fid <= String (my primary key field), image <= Image Data field

Relationships

Relationship :catalog, Destination :Catalog, Inverse :thumbImage

1
Have u set the delegate? e.g typically like this _fetchedResultsController.delegate = self;hp iOS Coder
yes i have set delegate, Delegate methods are called if when change of a attributes of catalog entity problem with changing relationship's attribute.Chathuranga Jayawardhana
That is a known restriction of NSFetchedResultsController, compare stackoverflow.com/questions/7533849/….Martin R

1 Answers

0
votes

try adding this to your Image entity:

//Not tested
- (void) setImage:(NSData *)data
{
    [self.catalog willChangeValueForKey:@"thumbImage"]
    [self willChangeValueForKey:@"image"];
    [self setPrimitiveValue:data forKey:@"image"];
    [self didChangeValueForKey:@"image"];
    [self.catalog didChangeValueForKey:@"thumbImage"];
}