什么时候使用 plist?
When to use plist?
我知道 plist 的作用,但 plist 的一般用途是什么?
用它来 write/read 数据是个好主意吗?
抱歉,问题很笼统。
谢谢
将 plist 视为 Dictionary
(或 NSDictionary
)的基于文件的实现。您拥有的是键值对,您可以将其解析并用作逻辑的一部分。
如果您可能已经观察到,每个项目中都会有一个 Info.plist
文件。它存储您可能想要添加的不同配置的值。一个例子是 NSAppTransportSecurity
一旦文件中有了值,就可以将其用作:
var configDict: NSDictionary?
if let path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist") {
configDict = NSDictionary(contentsOfFile: path)
}
if let dict = myDict {
// Use configDict here
}
请记住,您不仅限于与项目捆绑在一起的默认 Info.plist。您也可以自己创建一个。考虑您在启动时获取大量配置的场景。可以保存成plist,以后参考。
回答问题的第二部分,读取和写入文件,如果以非常短的间隔执行,似乎是不必要的开销。最好使用本地字典变量,然后以更长的时间间隔或在您确定更改已完成时写入。 plist更多的是一种持久化存储。因此,您可以选择在应用程序进入后台或用户终止应用程序时写入文件。
注意:请记住,plist 本质上是您文件系统中的普通文件。没有什么可以阻止某人阅读它(我知道沙盒)。这就是为什么永远不要在 plist 中(也不在 UserDefaults 中)存储任何密码等是明智的。
假设您的应用有一个很大的常量,例如按字母顺序排列的世界上所有国家/地区的名称。那是一个字符串数组。您将如何创建该常量?
一种方法可能是在代码中键入整个数组,一个非常大的数组。
将其配置为 .plist 文件并在您的应用启动时将该文件读入数组可能更容易。
因此,这是 .plist 文件的一种用途:它是一种以规范格式呈现的文本,用于您在应用程序的生命周期中需要使用的数据。
当然,反过来也是一样的;您可以在应用程序运行时将字符串数组保存为 .plist 文件,以便下次应用程序运行时再次读取它。 (这实际上就是 UserDefaults 的工作原理。)
当您需要存储少量持久数据时,Plist 很方便。 API 很简单。不推荐大的 plist 文件。 Apple suggests less than a few hundred kilobytes. 您不会使用 plist 来存储用户生成的数据,因为随着时间的推移它们可能会超过该限制,仅将其用于您控制大小的数据。
我知道 plist 的作用,但 plist 的一般用途是什么?
用它来 write/read 数据是个好主意吗?
抱歉,问题很笼统。 谢谢
将 plist 视为 Dictionary
(或 NSDictionary
)的基于文件的实现。您拥有的是键值对,您可以将其解析并用作逻辑的一部分。
如果您可能已经观察到,每个项目中都会有一个 Info.plist
文件。它存储您可能想要添加的不同配置的值。一个例子是 NSAppTransportSecurity
一旦文件中有了值,就可以将其用作:
var configDict: NSDictionary?
if let path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist") {
configDict = NSDictionary(contentsOfFile: path)
}
if let dict = myDict {
// Use configDict here
}
请记住,您不仅限于与项目捆绑在一起的默认 Info.plist。您也可以自己创建一个。考虑您在启动时获取大量配置的场景。可以保存成plist,以后参考。
回答问题的第二部分,读取和写入文件,如果以非常短的间隔执行,似乎是不必要的开销。最好使用本地字典变量,然后以更长的时间间隔或在您确定更改已完成时写入。 plist更多的是一种持久化存储。因此,您可以选择在应用程序进入后台或用户终止应用程序时写入文件。
注意:请记住,plist 本质上是您文件系统中的普通文件。没有什么可以阻止某人阅读它(我知道沙盒)。这就是为什么永远不要在 plist 中(也不在 UserDefaults 中)存储任何密码等是明智的。
假设您的应用有一个很大的常量,例如按字母顺序排列的世界上所有国家/地区的名称。那是一个字符串数组。您将如何创建该常量?
一种方法可能是在代码中键入整个数组,一个非常大的数组。
将其配置为 .plist 文件并在您的应用启动时将该文件读入数组可能更容易。
因此,这是 .plist 文件的一种用途:它是一种以规范格式呈现的文本,用于您在应用程序的生命周期中需要使用的数据。
当然,反过来也是一样的;您可以在应用程序运行时将字符串数组保存为 .plist 文件,以便下次应用程序运行时再次读取它。 (这实际上就是 UserDefaults 的工作原理。)
当您需要存储少量持久数据时,Plist 很方便。 API 很简单。不推荐大的 plist 文件。 Apple suggests less than a few hundred kilobytes. 您不会使用 plist 来存储用户生成的数据,因为随着时间的推移它们可能会超过该限制,仅将其用于您控制大小的数据。