Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 核心数据:可能保存或释放的对象_Ios_Core Data_Nsmanagedobject_Nsmanagedobjectcontext - Fatal编程技术网

Ios 核心数据:可能保存或释放的对象

Ios 核心数据:可能保存或释放的对象,ios,core-data,nsmanagedobject,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,在使用核心数据更新应用程序时,新功能是一个异步过程,用于在应用程序和后端之间同步信息。 问题在于,在应用程序中,某些NSManagedObject是在执行向导过程时生成的,在向导结束时,用户可以保存或放弃。 这意味着,如果同步过程是在向导期间进行的,则某些对象可以保存到永久存储中,但数据不完整,并且由于同步结束时的save调用,无法释放这些对象。 在旧版本中,这不是问题,因为同步是手动过程。 我正在考虑不同的解决方案,最简单的方法是在向导结束时或在向导执行期间按cancel时删除对象,但我想知道

在使用核心数据更新应用程序时,新功能是一个异步过程,用于在应用程序和后端之间同步信息。 问题在于,在应用程序中,某些NSManagedObject是在执行向导过程时生成的,在向导结束时,用户可以保存或放弃。 这意味着,如果同步过程是在向导期间进行的,则某些对象可以保存到永久存储中,但数据不完整,并且由于同步结束时的save调用,无法释放这些对象。 在旧版本中,这不是问题,因为同步是手动过程。 我正在考虑不同的解决方案,最简单的方法是在向导结束时或在向导执行期间按cancel时删除对象,但我想知道是否还有其他更好的解决方案可以用于其他类似情况。 我发现这个问题与这个问题有关:

在第一个问题中,建议在创建NSManagedObject实例并在保存对象之前添加其值时,将托管对象上下文保留为nil,但在阅读注释时,它似乎不起作用,可能是因为您的对象与具有托管对象上下文的对象也有某种关系,而我的对象与此相关。 有人说还要创建一个子托管对象上下文,但M.Zarra似乎不喜欢它,如果你买了一本核心数据书,你就会知道Marcus对核心数据有些了解 第二个建议创建一个内存中的新存储,但它没有解释如何将对象从一个对象移动到另一个对象,我猜一种拷贝就可以了。 哪一种可能是最好的方法?我正在寻找一个最小的重构和回归解决方案。

您没有解释为什么不能删除向导过程中创建的对象。@DuncanGroenewald问题是,将来我可能需要添加更多临时对象或待确认对象,所以我在寻找一个更可靠的解决方案。当然,但为什么不在数据库中创建它们,并简单地用状态标志标记它们,以指示它们是否已被确认。这样他们也能在应用程序关闭后生存下来。@DuncanGroenewald-neat!这似乎是个好主意。