2010-02-03 109 views
4

我有以下情形:有一過性屬性核心數據緩存瞬態屬性?

  • 實體用於切片定期刷新
  • NSFetchedResultsController

一切正常

  • 基於Web的數據模型,但是當我做刷新,即瞬態屬性似乎越來越過時。

    該屬性由我的實體對象中的accesssor返回。我試着在存取器中設置一個斷點,並注意到它在我的應用程序啓動時和我的NSFetchedResultsController時並未實際調用。這似乎表明Core Data在某處緩存了這個值(因爲我的表格仍然正確)。有沒有辦法清除這個緩存?

  • 回答

    8

    是的。使用

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

    的名字是你叫

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

    設置cacheName參數時,在NSFetchedResultsController初始化時間,提供了一個。

    或者,您可以在NSFetchedResultsController初始化時間期間避免核心數據緩存數據:只需傳遞nil即可獲得cacheName參數。

    +0

    這屬於NSFetchedResultsController;操作系統是否在應用程序運行之間緩存這些結果? – 2010-02-03 17:58:07

    +0

    從NSFetchedResultsController文檔中獲得:「緩存在應用程序啓動時保持不變」。 – 2010-02-03 18:33:20

    +0

    輝煌,謝謝! – 2010-02-03 18:39:49