iPhone:如何在切换到另一个视图并返回到同一视图后保留这些值?

时间:2011-02-23 05:02:23

标签: iphone objective-c cocoa-touch ios4 nsmutablearray

如何在切换到另一个视图并返回到同一视图后保留这些值?

即使视图消失,有没有办法保留数组?

My Array第一次在控制台中显示值,但第二次从其他视图返回时,数组显示(null)

修改

我正在使用这个数组将它用于我的核心情节。

此数组包含核心图

的绘图点

1 个答案:

答案 0 :(得分:3)

一般来说,您有几个选项可以维护视图之间的数据持久性。没有特别的顺序:

  1. 在视图之间来回传递数组。这涉及在每个视图上创建属性并进行设置。您可以直接使用属性,但可以更轻松地使用NSNotifications传递数据。

  2. 将数据存储在Core Data中,根据需要延迟加载。这是最强大的选择,可能有点多。核心数据不是“在视图之间传递数据”的正确方法,但通常可能是您需要的。作为额外的奖励,您的数据可以在应用启动时保存。

  3. 将数据存储在您的代理中。这类似于使用NSNotofications。所有对象都可以比在整个地方相互传递引用更容易地访问委托。

  4. 假设您的数据兼容,请将数组存储在NSUserDefaults中。这类似于Core Data,它提供持久性,但更“轻量级”且功能更弱。请注意,某些对象与NSUserDefaults不兼容。

  5. 修改:

    对于存储点数组,我会将其序列化为Core Data或NSUserDefaults,具体取决于用户与数据的交互方式以及实际存在的数据量。如果点数经常变化并且有很多点,请查看核心数据。虽然,你可以在NSUserDefaults中使用数组做得很好。你最终会做更多的数组操作。