我对ipad和拆分视图相当新,但对iphone和核心数据非常熟悉。 我现在想知道何时实际保存任何更改,以便不会丢失任何更改并且不会经常调用保存上下文。
用户从主视图中选择一个项目,然后在详细视图控制器中显示该项目。非常类似于iPhone。但是在拆分视图中,细节视图控制器只是保持可见,并且每次在主控制器中选择新的细节项时都会分配一个新的细节项。
问题:与此同时,用户可能已对细节项进行了更改。什么时候保存?我可以对哪个事件做出反应? setDetailItem是在显示新detailItem之前保存对旧detailItem的更改的好地方。精细。 但是,在用户退出应用程序之前,最后一项的更改是什么?
为此添加一些复杂性:我在TabBar中运行多个拆分视图控制器。因此用户可以从一个标签栏切换到下一个标签栏。我想viewWillDisappear
可能适合控制这些事件?我也应该保存最后的更改吗?是否还要离开应用程序?
答案 0 :(得分:2)
setDetailItem
和viewWillDisappear
对我保存用户数据听起来不错。
viewWillDisappear
,但会调用应用程序委托中的applicationDidEnterBackground
。
根据文件,
...您应该使用此方法来释放共享资源,保存用户数据, 使计时器无效,并存储足够的应用程序状态 用于将应用程序恢复到当前状态的信息以防万一 它会在稍后终止。 ...
或者,您可以注册UIApplicationDidEnterBackgroundNotification
。