什么时候使用plist?

时间:2017-02-24 19:30:30

标签: ios plist

我知道plist的作用是什么,但plist的一般目的是什么?

用它来写/读数据是不是一个好主意?

对不起,广泛的问题。 谢谢

3 个答案:

答案 0 :(得分:1)

假设您的应用有一个很大的常量,就像世界上所有国家/地区的字母顺序一样。这是一个字符串数组。你将如何创造这个常数?

一种方法可能是在代码中输入整个数组,这是一个非常大的数组。

将此配置为 .plist 文件可能更容易,并在应用启动时将文件读入数组。

因此,这是 .plist 文件的一种用法:它是一种文本格式的文本呈现,用于在应用程序生命周期内需要使用的数据。

当然,同样的事情也是相反的;您可以在应用运行时将一组字符串保存为 .plist 文件,以便在下次应用运行时再次读取它。 (事实上​​,这就是UserDefaults的工作原理。)

答案 1 :(得分:0)

将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并稍后参考。

回答问题的第二部分,如果以非常短的时间间隔执行,读取和写入文件似乎是不必要的开销。最好使用本地Dictionary变量,然后以较长的时间间隔或在确定完成更改时写入。 Plist更像是一种持久存储。因此,当应用程序进入后台或用户杀死应用程序时,您可以选择写入文件。

注意:请记住plist本质上是文件系统中的普通文件。没有什么可以阻止某人阅读它(我知道沙盒)。这就是为什么永远不要在plist中存储任何密码等(也不是在UserDefaults中)。

答案 2 :(得分:0)

当您需要存储少量持久数据时,plists非常方便。 API很简单。不建议使用大的plist文件。 Apple suggests less than a few hundred kilobytes.您不会使用plist来存储用户生成的数据,因为随着时间的推移它们可能会超出该限制,只能将其用于您控制其大小的数据。