当我切换ViewControllers时,我应该在哪里存储数据/状态信息?

时间:2010-08-18 20:51:57

标签: iphone scope

我刚开始在iPhone上开发,并且想知道存储用户输入我的应用程序的数据。

问题: 我的申请组织为:

  • UITabController
    • LoginViewController(UIViewController)
    • 的UINavigationController
      • CustomViewController1(UIViewController)
      • CustomViewController2(UIViewController)
      • CustomViewController3(UIViewController)
    • 的UINavigationController
      • CustomerViewController3(它有一个UITableView,允许用户转到详细视图,然后是地图视图)

我应该如何存储用户的输入?

  1. 当用户登录时,我需要缓存他们的用户名和密码,以便我可以将其传递给Web服务。
  2. 另外,我可以选择允许用户保存用户名和密码。我应该在哪里存储这些信息?
  3. 在CustomViewController1,2,3中,我收集各种输入,然后在某些时候将其传递给Web服务。我需要存储这个和Web服务的响应,这样如果用户想要取消我有必要的ID发送到“取消”Web服务。
  4. 如何创建可存储的“全局变量”,然后任何视图控制器都可以看到?
  5. 任何信息和代码示例都会让我非常感激。

    我有大部分的Apple iOS编程指南,并且它支持打印出来的PDF文件,但是对于刚开始使用平台的新用户来说,这些可能会非常令人生畏。

    再次感谢! 杰森

2 个答案:

答案 0 :(得分:2)

通过使用NSUserDefaults类(文档中的代码示例),您可以非常简单地完成所有这一切。这是一个持久存储简单信息并从应用程序的任何位置访问它的地方。当您了解更多API并找出更具体的需求时,您可以扩展并使用本地文件系统存储,核心数据等。

答案 1 :(得分:-1)

如果您没有寻找存储与当前用户相关的数据的方法,但只是让所有视图控制器都可以访问数据,则有两种方法。

a)建议:创建一个单例类,并将此类导入到viewcontrollers中 b)在app委托中声明对象,并使用[[UIApplication SharedApplication]委托] .objectname访问它们。

我必须承认我现在使用b)脸红。我认为这将涵盖你的观点1,2,4。对于第3点,请参阅jbm的建议 - 或者将它们写入应用程序沙箱中的文件,我不建议将其用于密码。