gpt4 book ai didi

iphone - 应用程序将终止通知并保存草稿(核心数据)

转载 作者:行者123 更新时间:2023-12-03 18:39:56 24 4
gpt4 key购买 nike

如果用户当前位于我的编辑 View Controller 中,我希望能够在用户关闭我的应用程序时保存更改。为此,我正在观察共享应用程序的 UIApplicationWillTerminateNotification。在我的应用程序委托(delegate)中,我使用 applicationWillTerminate: 方法来关闭并释放所有核心数据上下文。

我发现的问题是,应用程序委托(delegate)中的 applicationWillTerminate: 方法在任何观察者对 UIApplicationWillTerminateNotification 通知使用react之前被调用。 。这意味着在我的编辑 View Controller 有机会保存任何内容之前,我的核心数据堆栈已被释放并关闭!

通常如何克服这个问题,因为我看不到办法!

非常感谢,

迈克尔

最佳答案

编辑: 由于运行循环和通知的内部工作原理,第一种(基于通知的)方法可能不起作用。

如果您想坚持使用基于通知的架构,您实际上可以从 applicationWillTerminate: 中发布您自己的通知。只需创建您自己的 MyApplicationWillTerminate 通知,然后在 [NSNotificationCenter defaultCenter] 上调用 postNotification: 即可。然后让您的编辑 Controller 注册 MyApplicationWillTerminate 实例,而不是默认的 UIApplicationWillTerminateNotification

另一种选择是让您的应用程序委托(delegate)存储编辑 Controller 的实例(如果它可见),然后在释放核心数据上下文之前在 applicationWillTerminate: 中保存新信息。不过,这会用额外的实例变量污染您的应用程序委托(delegate),因此它可能不是最佳解决方案。

最后一个想法:为什么不让应用程序保存用户所做的任何编辑?这样,您不必担心应用程序在编辑一条信息时中途关闭 - 编辑内容已保存,您只需按原样发布核心数据即可。 (这可能不适合您;如果不了解更多有关您的应用程序结构以及您正在编辑的数据的信息,我真的无法说。)

关于iphone - 应用程序将终止通知并保存草稿(核心数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1744529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com