当另一个模型正在使用该对象时,从核心数据中删除 NSManagedObject
Posted
技术标签:
【中文标题】当另一个模型正在使用该对象时,从核心数据中删除 NSManagedObject【英文标题】:Deleting NSManagedObject from core data while another model is using that object 【发布时间】:2013-08-18 05:05:07 【问题描述】:为了解决以下问题,使用核心数据的正确方法应该是什么。
我有 2 个模型。 模型 A 和模型 B。两个模型都使用相同的 NSManagedContext(可能是问题的一部分?) 和一个 NSManagedObject X。 模型 A 获取 X 并启动一个 30 秒的计时器。定时器被触发后,它会在 X 上做一些工作。 在这 30 秒内,模型 B 从核心数据中删除对象 X。
有没有办法在定时器触发后继续使用模型 A 处理对象 X(包括保存对象),或者我应该只是修补一个业务逻辑解决方案以防止在这种情况下删除 X?对于这个问题,我应该使用不同的架构解决方案吗(父/子上下文等)?
【问题讨论】:
我不确定我是否完全理解您的情况。您是否有可能指的是屏幕(或视图控制器)而不是模型? 2个不同的模型之间不能有共享对象... 【参考方案1】:如果对象仍在使用中,则不应删除它。或者,当您想删除它时,您应该确保终止对它的所有其他使用。从逻辑上讲,您描述的内容没有意义,我希望您在尝试更新/保存已删除的对象时看到异常。
【讨论】:
以上是关于当另一个模型正在使用该对象时,从核心数据中删除 NSManagedObject的主要内容,如果未能解决你的问题,请参考以下文章