Core Data是否缓存瞬态属性?

时间:2010-02-03 15:28:09

标签: iphone core-data

我有以下情况:

  • 具有用于切片的瞬态属性的实体
  • 定期刷新基于网络的数据模型
  • NSFetchedResultsController

一切正常,但是当我刷新时,这个瞬态属性似乎已经过时了。

该属性由我的实体对象中的访问者返回。我尝试在访问器中设置一个断点,并注意到我的应用程序启动时我的NSFetchedResultsController实际上没有调用它。这似乎表明Core Data正在某处缓存此值(因为我的表仍然是正确的部分)。有没有办法清除这个缓存?

1 个答案:

答案 0 :(得分:8)

是。使用

+ (void)deleteCacheWithName:(NSString *)name;

名称是您在NSFetchedResultsController初始化期间提供的名称,在调用

- (id) initWithFetchRequest:(NSFetchRequest *)fetchRequest managedObjectContext:(NSManagedObjectContext *)context sectionNameKeyPath:(NSString *)sectionNameKeyPath cacheName:(NSString *)name;

设置cacheName参数。

或者,您可以在NSFetchedResultsController初始化时间内避免Core Data缓存数据:只需为nil参数传递cacheName