使用Ensembles

时间:2016-04-20 14:53:58

标签: ios core-data ensembles

我正在阅读Ensembles文档,其中全局标识符永远不会在对象生命周期中发生变化。但是,我有一个Tag对象,它只包含一个name属性(一个字符串)。根据Ensembles文档,标签名称也可以作为全局标识符返回,实际上甚至比出于显而易见的原因返回UUID更好。

我的问题是,由于允许用户在我的应用程序中重命名标记,我应该从数据库中删除标记对象并重新创建它,还是重命名标记对象被认为是安全的? (重命名标记对象将导致应用程序返回新标记名称作为全局标识符,这似乎与不在对象的整个生命周期中更改全局标识符的警告冲突)

感谢。

1 个答案:

答案 0 :(得分:3)

您不应更改全局ID,因此标记对象应视为不可变。您可以删除它们,也可以插入新的,甚至是在其他设备上创建的新的。但是不要改变全球身份。

我的建议是在用户重命名时创建一个新的标记对象。根据您的模型,这可能意味着从一个标签对象到另一个标签对象的关系发生变化,但这应该很有效。

关于全局ID的好处是,即使您同时在两个设备上创建相同的标记,Ensembles也可以合并关系。