0

我正在开发的 iphone 应用程序中有一个Bet由 coredata 管理的对象。

我想为这个赌注对象添加一个 UID(betnum)属性,以便将来我可以使用这个 UID 将赌注推送到服务器,以了解它是否已经存在于服务器上。我知道这将涉及我更新 iPhone 应用程序的版本,将此属性添加到类中并将此属性设置为已由先前版本的核心数据管理的所有对象(以及任何新对象Bet)的递增值Bet)。

为此,我需要使用Lightweight Migration或创建我自己的Mapping Model来迁移对象模型。我已经读到我应该尽可能使用轻量级迁移,因为创建自己的映射模型会变得混乱。我知道可以使用轻量级迁移将属性添加到现有对象,但我不知道通过自动递增或类似的方式设置特定值。

我可以为此使用轻量级迁移吗?我是否使用轻量级迁移,然后在迁移后使用某种迁移后挂钩或 onAppUpdate 方法在代码中设置值?还是我注定要创建自己的映射模型?

4

1 回答 1

1

不,你不能为此使用轻量级迁移,或者至少在事后没有一些额外的工作。如果您只是添加一个属性,那么轻量级迁移会起作用,但它不包括为新属性设置值。您可以 (a) 使用其他迁移方案之一并在迁移期间添加您的 UID 值,或者 (b) 使用轻量级迁移但添加一个后处理步骤,您可以在其中运行数据存储并设置新值。

另外,请记住,Core Data 没有自动递增的值。您必须计算出每个实例的值需要是什么。

于 2013-04-19T00:19:59.623 回答