我正在开发一个新的核心数据应用程序,我创建了一个NSArrayController (实体模式)来进行绑定,它工作得很好,但当SQLite存储发生变化(更改来自使用TICoreDataSync库的其他客户端)时,我强制重新加载tableView,但没有成功。代码如下:
NSError *saveError = nil;
[self.managedObjectContext save:&saveError];
if (saveError != nil) {
NSLog(@"%s %@", __PRETTY_FUNCTION__, saveError);
}
[arrayController fetch:nil];
[tableView reloadData];如果我关闭应用程序并重新启动它,我可以看到我的tableView中的变化,但我希望它自动刷新。提前谢谢。
发布于 2014-04-01 23:41:49
当TICDS进行更改时,你会调用mergeChangesFromContextDidSaveNotification:来更新你的上下文吗?
您应该实现此委托方法:
-(void)documentSyncManager:(TICDSDocumentSyncManager *)aSyncManager
didMakeChangesToObjectsInBackgroundContextAndSaveWithNotification:(NSNotification *)aNotification确保在适当的线程上调用mergeChangesFromContextDidSaveNotification:。
同样值得关注的是我正在开发的一个名为Ensembles的同步框架。TICDS现在不是很容易维护--我以前也在做过--而且集成在一起使用起来容易多了。
发布于 2014-04-02 21:26:36
我在fetch之前添加了下面这行代码,它可以正常工作:
[arrayController setManagedObjectContext:[[NSApp delegate] managedObjectContext]];这对我来说很好,但我不明白为什么每次我开始抓取时都需要设置它,因为managedObjectContext是在启动时设置的,否则一旦应用程序启动,它就不会显示值。
https://stackoverflow.com/questions/22790117
复制相似问题