0

使用NSUserDefaults该类,您可以保存与应用程序或用户数据相关的设置和属性。

现在我有两个问题:

  1. (设置和属性)存储在哪里?if => 对象将保存在所谓的 iOS“默认系统”中 then : 什么是 iOS“默认系统”

  2. 将保留多长时间?

4

2 回答 2

3

在哪里?这取决于您正在开发的应用程序类型。对于 AppStore 应用程序,在已安装应用程序文件夹的沙盒文件夹中,更准确地说是在 Library/Preferences 文件夹中。包含设置的实际文件是一个 PLIST(属性列表)文件,其名称与您的应用程序的捆绑标识符匹配。

总而言之:

(/var/mobile/Applications/XXXX-XXXX-XXXXXX-XXXXXXXX/MyApp.app/Library/Preferences/com.mycompany.bundleid.plist

(其中 XXXX 等是 UUID)。

如果您正在为越狱设备制作应用程序(即 Cydia 应用程序),它将再次是一个 plist 文件,其名称与捆绑 ID 匹配,但它将安装在

/var/mobile/Library/Preferences/com.mycompany.bundleid.plist

iOS 默认系​​统是 Foundation 框架、iOS 本身以及管理、存储和修改您的首选项/设置/默认值的文件和目录的一部分。

多久?同样,这取决于您正在编写什么样的应用程序。对于普通的 AppStore 应用程序,默认值会保存到文件中 - 但前提是用户不删除您的应用程序。当您的应用程序被删除时,整个沙盒、应用程序包和用户默认的课程也将消失。永远,不可逆转。

如果您开发一个驻留在系统应用程序目录 (/Applications) 中的越狱应用程序,那么即使用户删除了您的包/应用程序,用户默认文件也将在 /var/mobile/Library/Preferences 中可用,因为 APT( Cydia 的支持包管理器)仅记录您的包最初包含的文件,而默认属性列表文件(仅在您的应用首次访问NSUserDefaults该类时创建)不是这种情况。如果用户手动删除文件或恢复到股票固件,它会消失的。

于 2012-08-12T11:12:02.583 回答
1

答案:

  1. 在应用程序的沙箱中。究竟哪里不重要,因为无论如何您都不会直接访问默认值。

  2. 只要您的应用程序在设备上。如果您删除该应用程序,沙盒也会被删除,因此它们也会被删除。如果您更新应用程序,则会使用相同的沙箱,因此它们不会被删除。

至于它是什么,我只想引用您的一些文档

NSUserDefaults 类提供了一个与默认系统交互的编程接口。默认系统允许应用程序自定义其行为以匹配用户的偏好。例如,您可以允许用户确定应用程序显示的度量单位或自动保存文档的频率。应用程序通过将值分配给用户默认数据库中的一组参数来记录这些偏好。这些参数被称为默认值,因为它们通常用于确定应用程序在启动时的默认状态或其默认行为方式。

在运行时,您使用 NSUserDefaults 对象从用户的默认数据库中读取应用程序使用的默认值。NSUserDefaults 缓存信息以避免每次需要默认值时都必须打开用户的默认数据库。同步方法会定期自动调用,它使内存中的缓存与用户的默认数据库保持同步。

于 2012-08-12T10:53:53.017 回答