代码之家  ›  专栏  ›  技术社区  ›  Ben Gottlieb

核心数据缓存瞬时属性吗?

  •  4
  • Ben Gottlieb  · 技术社区  · 14 年前

    我有以下场景:

    • 具有用于分段的临时属性的实体
    • 基于Web的数据模型定期刷新
    • 未保存的结果控制器

    一切正常,但当我刷新时,这个短暂的属性似乎已经过时了。

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

    1 回复  |  直到 14 年前
        1
  •  8
  •   Massimo Cafaro    14 年前

    对。使用

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

    名称是您在 NSFetchedResultsController 初始化时间,调用时

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

    设置 cacheName 参数。

    或者,您可以避免在 未保存的结果控制器 初始化时间:简单通过 nil 对于 缓存名 争论。