首页 文章

NSFetchedResultsController controllerWillChangeContent未调用关系更改

提问于
浏览
0

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

  • (void)controllerWillChangeContent:(NSFetchedResultsController *)控制器

  • (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 *)控制器

  • 但是当我更改“目录”实体本身的属性时,这些方法被调用 .

我的实体的信息

目录(实体)

属性

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

关系

关系:thumbImage,Destination:Image,Inverse:catalog,

图像(实体)

属性fid <= String(我的主键字段),image <= Image Data字段

关系

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

1 回答

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

相关问题