hfr*_*ann 4 caching core-data objective-c ios watchkit
我正在使用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;
}
Run Code Online (Sandbox Code Playgroud)
调用[managedObjectContext refreshObject: mergeChanges:]只在WKTable的for循环中起作用.
谢谢!
小智 5
在创建一个与包含应用程序的核心数据存储共享核心数据存储的Action扩展时,我遇到了同样的问题.我遇到的适用于我的解决方案是在扩展中设置主队列NSManagedObjectContext上的stalenessInterval,如下所示:
objectContext.stalenessInterval = 0.0;
Run Code Online (Sandbox Code Playgroud)
这告诉扩展中的上下文每次都要获取新数据并忽略缓存.