有没有办法将NSManagedObject标记为脏?

在我的NSManagedObject子类中,我有一个NSString ivar,它分成一个NSSet实体。 我希望能够设置字符串,并在调用保存期间执行拆分,但是,只设置字符串不会触发脏标志或需要保存。

您可以在NSManagedObject子类上实现+ (BOOL)contextShouldIgnoreUnmodeledPropertyChanges并返回NO而不是默认值( YES )。

这应该会导致NSManagedObjectContext被通知更改属性,即使它们没有由数据库中的实际列表示。

我假设你的意思是“属性”而不是“ivar”。 你将一个字符串拆分成一个集合然后保存集合的方案也许值得商榷,但我想这不是问题所在。

为什么需要将受管对象标记为“脏”? 这真的没有必要。 只是保存它,脏或不!

我不知道你如何检查托管对象的“肮脏”,但我想你想要在某一点触发保存。 此时,您可以检查自己的BOOL “dirtyFlag”,您可以根据需要进行设置并保持可用状态。

让这些事情变得明确总是更好。 您的代码将变得更具可读性和透明度。