我正在开发的iphone应用中有一个由{coredata管理的Bet
对象。
我想为这个投注对象添加一个UID(betnum)属性,以便将来我可以使用此UID将投注推送到服务器,以了解它是否已经存在于先前推送的服务器上。据我所知,这将涉及我更新iPhone应用程序的版本,将此属性添加到Bet
类,并将此属性设置为已由核心数据管理的所有Bet
对象的递增值以前的版本(以及任何新版本)。
为此,我需要使用Lightweight Migration或通过创建我自己的Mapping Model来迁移对象模型。我已经读过我应该尽可能使用轻量级迁移,因为创建自己的映射模型可能会变得混乱。我知道可以使用Lightweight Migration向现有对象添加属性,但我不知道通过自动递增或类似的方式设置特定值。
我可以为此使用轻量级迁移吗?我是否使用轻量级迁移,然后使用某种迁移后挂钩或onAppUpdate方法在迁移后设置代码中的值?或者我注定要创建自己的映射模型?
答案 0 :(得分:1)
不,你不能为此使用轻量级迁移,或者至少在事后没有额外的工作。如果您只是添加属性,则轻量级迁移会起作用,但不包括新属性的设置值。您可以(a)使用其他迁移方案之一并在迁移期间添加您的UID值,或者(b)使用轻量级迁移,但添加一个后处理步骤,您可以在其中运行数据存储并设置新值。 / p>
另外,请记住Core Data没有自动递增值。你必须弄清楚每个实例需要的值。