我正在试图弄清楚如何设计核心数据设置。
我有一个在主线程中运行的NSManagedObjectContext,它由另一个后台线程(它有自己的上下文)更新,通过使用NSManagedObjectContextDidSaveNotification回调更新主上下文:系统的这一部分工作正常。
我的问题是尝试保存用户数据以及如何向Web服务器发送立即请求以保存此数据,同时仍将其添加到主上下文中。 实体对象很重要,因为通过查看其属性来生成在服务器上保存用户数据的请求。如果已成功更新Web服务器上的数据(从后台上下文到主上下文),则应正确更新此实体对象。
例如,如果我要创建一个链接到主上下文的新NSEntityDescription,我是否会监听NSManagedObjectContextDidSaveNotification,然后创建一个后台线程,我将为其创建一个新的上下文并发送实体对象id。然后,这将更新主上下文并将对象实体设置为发送?
答案 0 :(得分:0)
在主线程的mananagedObjectContext中对托管对象进行更改(但不保存您的moc),在完成处理程序中向服务器发送请求以进行更改(使用类似NSURLConnection -sendAsynchronous请求)成功触发您自己的NSNotification以提醒您的控制器现在可以安全地保存moc。如果失败,您可以提醒用户,使用核心数据撤消,或者沿着这些线路。