Iphone 应用内购买变量的NSUserDefault?

Iphone 应用内购买变量的NSUserDefault?,iphone,variables,encryption,in-app-purchase,nsuserdefaults,Iphone,Variables,Encryption,In App Purchase,Nsuserdefaults,在我的应用程序中,我一直在NSUserDefaults中存储变量,这些变量随着应用程序中的应用程序内购买而增加。我的问题是,当应用程序更新时,这些变量是否会保留,以便用户在更新后仍然可以访问它们 此外,存储此类变量的最佳实践是什么;苹果有什么建议?除非用户卸载并重新安装应用程序,否则在应用程序更新之间不会删除默认数据。它还存储在备份中(通过iTunes和iCloud),因此只要用户设置了其中一个备份,并且没有卸载应用程序,您就可以依赖数据持久化 作为旁注,您可能应该加密存储在用户可访问的默认文件

在我的应用程序中,我一直在NSUserDefaults中存储变量,这些变量随着应用程序中的应用程序内购买而增加。我的问题是,当应用程序更新时,这些变量是否会保留,以便用户在更新后仍然可以访问它们


此外,存储此类变量的最佳实践是什么;苹果有什么建议?

除非用户卸载并重新安装应用程序,否则在应用程序更新之间不会删除默认数据。它还存储在备份中(通过iTunes和iCloud),因此只要用户设置了其中一个备份,并且没有卸载应用程序,您就可以依赖数据持久化


作为旁注,您可能应该加密存储在用户可访问的默认文件中的值,这样就有可能进行篡改。

除非用户卸载并重新安装应用程序,否则在应用程序更新之间不会删除默认数据。它还存储在备份中(通过iTunes和iCloud),因此只要用户设置了其中一个备份,并且没有卸载应用程序,您就可以依赖数据持久化


作为旁注,您可能应该加密存储在用户可访问的默认文件中的值,这使得可以篡改。更新后,这些值将保留,但如果用户完全删除应用程序,重新启动操作系统或获得一部新手机,这些手机将被删除或不存在,因此我认为这不是一个好的解决方案,不能用于任何重要的事情。

更新后,手机将保留,但如果用户完全删除应用,重新启动操作系统或获取一部新手机,这些手机将被删除或不存在,因此我认为这不是一个好的解决方案,无法用于任何重要的事情。

用户如何访问UserDefaults?-我知道如果他们有一个坏掉的设备,他们可以改变备份的内容。允许访问用户在设备上的主文件夹(不需要越狱)的工具将是另一个,虽然我自己也没有尝试过。我从来没有听说过会发生这种情况,但是你会推荐什么方法来加密变量?你可以做一些简单的事情,比如存储一个由串接值组成的字符串的盐哈希,然后在使用从默认值加载的值之前验证校验和。您也可以使用AES(或类似工具)对通过序列化包含您的值的字典而形成的数据进行加密…但在这种情况下,这可能会有些过分。用户如何访问UserDefaults我知道如果他们有一个坏掉的设备,他们可以改变备份的内容。允许访问用户在设备上的主文件夹(不需要越狱)的工具将是另一个,虽然我自己也没有尝试过。我从来没有听说过会发生这种情况,但是你会推荐什么方法来加密变量?你可以做一些简单的事情,比如存储一个由串接值组成的字符串的盐哈希,然后在使用从默认值加载的值之前验证校验和。您也可以使用AES(或类似工具)来加密通过序列化包含您的值的字典而形成的数据……但对于这种情况来说,这可能有些过分。这并不十分重要,但我只是想确保在进行一些小的更新之后,它不会删除所有变量。好吧,在这种情况下,您应该会没事的。如果你想为用户保留一些东西,你必须拥有某种形式的用户帐户,或者依赖应用内购买系统。这并不十分重要,但我只是想确保在一些小更新之后,它不会消除所有变量。好吧,在这种情况下,你应该没事。如果你想为用户保留一些东西,你必须拥有某种形式的用户帐户或依赖应用内购买系统。