NSFetchedResultsController controllerWillChangeContent未调用关系更改

时间:2013-05-07 07:25:09

标签: ios core-data nsfetchedresultscontroller

我有iOS应用程序,它使用核心数据数据库,我使用NSFetchedResultsController来填充tableview。 我使用名为“Catalog”的实体来填充tablview,我将缩略图存储在名为“Image”的实体中,我将图像作为NSData存储在图像实体的属性中,我在填充tableview之后更新了缩略图,但是没有任何下面的方法没有调用。

  • (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

  • 但是,当我更改“目录”实体本身的属性时,这些方法称为。

我的实体的信息

目录(实体)

属性

title< = String   nid< = String(我的主键字段)   一些属性

关系

关系:thumbImage, 目的地:图片, 反向:目录,

图像(实体)

属性   fid< = String(我的主键字段),   image< =图像数据字段

关系

关系:目录, 目的地:目录, 反转:thumbImage

1 个答案:

答案 0 :(得分:0)

尝试将此添加到您的Image实体:

//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"];
}