我正在使用CoreData处理WatchKit扩展。
CoreData StoreURL与iOS App中的相同。 在iOS应用程序中,它的工作方式与预期的一样。
在SQLite-File(两者都使用(App + WK-Extension))中有新数据。 因此,似乎WatchKit-Extension中的CoreData正在从缓存中获取数据。
如何禁用缓存或强制加载新数据?
这是我获取数据的方式:
- (NSArray*)fetchAllActive:(NSError**)error
{
NSFetchRequest* fetchRequest = [super fetchRequestForTemplate:@"AllActiveReminder" substitutionVariables:nil];
NSArray* result = [super fetchWithRequest:fetchRequest error:error];
return result;
}
[managedObjectContext refreshObject: mergeChanges:]
的调用仅适用于WKTable的for循环。
谢谢!
答案 0 :(得分:5)
我在创建一个Action扩展时遇到了同样的问题,该扩展共享一个包含应用程序的Core Data商店。我遇到的适用于我的解决方案是在扩展内部的主队列NSManagedObjectContext上设置stalenessInterval:
objectContext.stalenessInterval = 0.0;
这告诉扩展中的上下文每次都获取新数据并忽略缓存。