将两个托管对象与核心数据合并

时间:2014-02-19 21:50:21

标签: ios iphone macos core-data

这是我面临的问题:

我有一个Contact托管对象,其中包含account_id和用户名。用户名和account_id都是unique,但遗憾的是我别无选择,只能容忍只有用户名,有时只有account_id。

异步地,我立即开始检查服务器以获取联系人的第二部分(用户名或account_id)。

这导致潜在的竞争条件。我可以创建一个用户名" Austin"但没有帐户ID。我可以同时创建一个与account_id:1234的联系人。对服务器的调用可能会随后显示Austin用户名实际上具有1234帐户ID,而这两个联系人对象实际上是一个联系人。

如果发生这种情况,我会遇到以下情况:

 contact1: username = "Austin", account_id = nil, a bunch of to-many relationships 
 contact2: username = nil, account_id = "1234", a bunch of *different* to-many relationships

并将它们合并到

contact: username = "Austin", account_id="1234" and the union of all the relationships in either original contact.

有没有人知道进行此对象合并的最佳方法?

提前致谢

0 个答案:

没有答案