SplitView和Core Data:何时更改/提交用户所做的更改

时间:2013-03-02 16:07:32

标签: objective-c ipad core-data uisplitviewcontroller

我对ipad和拆分视图相当新,但对iphone和核心数据非常熟悉。 我现在想知道何时实际保存任何更改,以便不会丢失任何更改并且不会经常调用保存上下文。

用户从主视图中选择一个项目,然后在详细视图控制器中显示该项目。非常类似于iPhone。但是在拆分视图中,细节视图控制器只是保持可见,并且每次在主控制器中选择新的细节项时都会分配一个新的细节项。

问题:与此同时,用户可能已对细​​节项进行了更改。什么时候保存?我可以对哪个事件做出反应? setDetailItem是在显示新detailItem之前保存对旧detailItem的更改的好地方。精细。 但是,在用户退出应用程序之前,最后一项的更改是什么?

为此添加一些复杂性:我在TabBar中运行多个拆分视图控制器。因此用户可以从一个标签栏切换到下一个标签栏。我想viewWillDisappear可能适合控制这些事件?我也应该保存最后的更改吗?是否还要离开应用程序?

1 个答案:

答案 0 :(得分:2)

setDetailItemviewWillDisappear对我保存用户数据听起来不错。

当应用程序进入后台时,不会调用

viewWillDisappear,但会调用应用程序委托中的applicationDidEnterBackground。 根据文件,

  

...您应该使用此方法来释放共享资源,保存用户数据,   使计时器无效,并存储足够的应用程序状态   用于将应用程序恢复到当前状态的信息以防万一   它会在稍后终止。 ...

或者,您可以注册UIApplicationDidEnterBackgroundNotification