我正在使用CoreData开发WatchKit扩展。
CoreData StoreURL与iOS App中的相同。
在iOS应用程序中,它的工作像预期的那样。
在SQLite-File(两个(应用程序+ 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循环中有效。谢谢!
最佳答案
创建与包含应用程序的Core Data存储共享一个Action扩展时遇到了相同的问题。我遇到的对我有用的解决方案是在扩展内部按如下所示在主队列NSManagedObjectContext上设置stalenessInterval:
objectContext.stalenessInterval = 0.0;
这告诉扩展中的上下文每次获取新数据并忽略缓存。