我遇到问题。我的iOS应用程序在获取某些数据和未保存的更改时表现得非常奇怪。为了您的兴趣,在将某些数据与Web服务器同步时出现整个行为。我想进行完全同步,然后保存更改。我尝试了一些解决方法,但没有一个能够很好地工作。核心数据提取请求和未保存的更改
问题本身: 我使用Web服务器同步一些实体。他们被组织成区域(他们的父母),他们自己在建筑物中。因此,对于每个实体我查询如果一个匹配的区域已经存在,如果没有,我创建一个新的。现在的问题是,如果他们刚刚创建,我无法获取这些区域(所以每次都会创建一个新的但完全相同的区域)。我还遇到了一个问题,即一旦通过向其添加新创建的区域而更改了该区域,我就无法再获取正确的建筑物,而完全相同查询的结果突然变空。
我已确保设置了[fetch setIncludePendingChanges:YES]
,并且我还使用了正常结果模式而非NSDictionaryResultType(请参阅:NSDictionaryResultType expression not taking into account newly inserted objects)。
我希望有人能帮忙。
你可以提供关于如何配置NSManagedObjectContexts的更多细节吗?这听起来像你可能从一个上下文中获取,而在后台线程中导入到另一个上下文中。在这种情况下,您需要保存上下文(并合并更改)才能获取刚插入的内容。 – 2012-07-30 09:35:52
嗯,我可以尝试。我不认为我有多个上下文 - 总是使用我的AppDelegate中的一个。此外,同步并不是在后台线程中完成,而是在显示活动指示符时在主线程上完成。 – patman 2012-07-31 07:11:31
是的,所以用你的NSFetchedResultsController设置代码更新你的问题。活动指示器是否响应,即在同步过程中更新和平滑动画? – 2012-07-31 09:00:44