【问题标题】:NSUserDefaults -- Data persisted for a user of app launch?NSUserDefaults - 为应用程序启动的用户保留数据?
【发布时间】:2011-01-25 07:08:41
【问题描述】:

NSUserDefaults 中存储的值是否针对特定用户登录?假设如果不同的用户在同一设备上登录应用程序,他是否能够看到用户 1 使用 NSUserDefaults 登录同一设备时保存的持久数据?

【问题讨论】:

    标签: iphone cocoa nsuserdefaults


    【解决方案1】:

    如果您在 NSUserDefault 中保存任何内容,则可以通过密钥访问它(保存时相同)。 不考虑日志记录。无论您使用特定密钥输入什么内容,都可以访问它。

    所以你可以说保存在 NSUserDefault 中的值对所有用户都保持不变。

    【讨论】:

      【解决方案2】:

      是的。虽然我不确定您所说的“在同一设备上登录应用程序”是什么意思,但您存储在 NSUserDefaults 中的任何内容都可以被其他任何人访问。您负责重置值,以便其他使用它的人无法访问以前存储的值。

      例如,当使用 Facebook iPhone SDK 时,您将存储此人的访问令牌,这样他/她就不必再次登录。如果其他人在第一个人退出之前出现并使用了该应用程序,他/她将有权访问第一个人的帐户。当此人从您的应用中退出 Facebook 时,您必须删除 NSUserDefaults 中的值,这样其他人就无法访问此人的帐户。

      希望这会有所帮助!

      【讨论】:

      • 我希望存储在 NSUserDefault 中的值可供共享设备的所有用户使用。有可能吗?
      • 是的,这也有效。一旦你存储了这些值并且不删除它们,它们应该无限期地存在(尽管我不是 100% 确定这一点......我想可能会有它们被删除的情况,例如如果应用程序是已删除)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多