不会手动删除对关系使用nullify删除规则的NSManagedObjects

时间:2014-05-28 15:43:47

标签: ios objective-c core-data

我最近想知道这个问题。我担心下面给出的核心数据实施的长期问题。

假设我们有任务 NSManagedObject相册对象有一对一的关系 Nullify 删除规则双向。然后相册与具有相同删除规则的照片对象具有一对多的关系。

问题是理论上的。如果任务对象被删除会发生什么,但开发人员不会手动删除与任务相关的相册照片对象?这种方式是否存在数据损坏的可能性?或者核心数据的规模会不会增加而不会抱怨?

事先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

  

如果任务对象被删除会发生什么,但开发人员不会删除与任务相关的相册照片对象手动?

然后适用正常的“无效”行为。从AlbumTask的反向关系设置为nil,但没有其他更改。使用“nullify”即可发生所有事情,当删除相关对象时,关系将设置为nil。

  

是否有可能以这种方式破坏数据?

好吧,你得到一个没有关联Album的{​​{1}}。这是否会被视为腐败取决于您的具体要求。如果每个Task 必须拥有Album,那么您可能会认为它已损坏。另一方面,如果这种关系是可选的,那么将它设为零就可以了。在这种情况下,底层持久性存储文件(可能是SQLite)不会比任何其他情况更容易被破坏。

  

或者Core Data的规模会不会增加而不会抱怨?

删除托管对象不会使持久性存储文件增长。如果您的意思是,相关的TaskAlbum对象是否仍然存在,那么是的,因为这就是您所描述的设计的工作方式。这是否有问题取决于您的具体要求。