将对象保存到数据库后,我必须检查某些属性(我需要先确保它已保存在磁盘上)。所以,我认为didSave
的{{1}}方法是最好的方法。
但是,在检查这些属性和更改其中一些属性之后,我想重新保存对象。因此,我调用托管对象上下文以再次保存对象 。 (我做了大量的测试,以确保我不会进入无限循环)。
现在,问题是托管对象上下文没有执行第二次保存。我怎么知道的?好吧,首先我检查了第二次保存的上下文的NSManagedObject
属性,然后返回no。此外,由于重新保存,再次调用didSave方法。
我做错了吗?我的算法出了什么问题?
注意:
我在开始时考虑了hasChanged
但事实证明,willSave
在验证之前被调用。毕竟,该对象可能无法保存在磁盘上。 保存到磁盘后,我需要执行检查和新设置。