plist

plist是一个XML的子集,使用UTF-8编码的文本文件,它的根节点是一个字典,内容由多个主键和值构成。常常用来存储App的配置信息。

可以直接使用NSDictionary类直接存储它的内容到plist内,比如这样:

import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {var window : UIWindow?func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {window = UIWindow()window!.rootViewController = Page()window!.rootViewController!.view.backgroundColor = .bluewindow!.makeKeyAndVisible()return true}
}
class Page: UIViewController {let filename = "/profile.plist"let data:[String:String] = ["key1" : "value1", "key2":"value2", "key3":"value3"]override func viewDidLoad() {super.viewDidLoad()bar()}func bar(){do {let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as Stringlet path = "\(documentDirectory)/\(filename)"print(path)let dict = NSDictionary(dictionary: data)let isWritten = dict.write(toFile: path, atomically: true)let dict1 = NSDictionary(contentsOfFile: path)print(dict1)print("file created: \(isWritten)")let text = try String(contentsOfFile: path, encoding: String.Encoding.utf8)print(text)}catch {print("\(error)")}}
}复制代码

类NSDictionary的方法write可以指定文件名,然后写入到指定文件。初始化方法 NSDictionary(contentsOfFile:)可以读取plist到词典对象内。

因为plist是UTF-8编码的文本文件,所以,可以使用String打开此文件,输出内容如下(去掉主题无关的文件头后):

<plist version="1.0">
<dict><key>key1</key><string>value1</string><key>key2</key><string>value2</string><key>key3</key><string>value3</string>
</dict>
</plist>复制代码

作为键值对的值,不仅仅可是是字符串,还可以是数字、日期、数组和词典。如下案例展示了plist存储的更多可能性:

import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {var window : UIWindow?func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {window = UIWindow()window!.rootViewController = Page()window!.rootViewController!.view.backgroundColor = .bluewindow!.makeKeyAndVisible()return true}
}
class Page: UIViewController {let filename = "/profile.plist"let data:[String:Any] = ["key1" : "value1", "key2":["key11":"value11"], "key3":[1,"2",NSDate(),3.1]]override func viewDidLoad() {super.viewDidLoad()bar()}func bar(){do {let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as Stringlet path = "\(documentDirectory)/\(filename)"print(path)let dict = NSDictionary(dictionary: data)let isWritten = dict.write(toFile: path, atomically: true)let dict1 = NSDictionary(contentsOfFile: path)print(dict1)print("file created: \(isWritten)")let text = try String(contentsOfFile: path, encoding: String.Encoding.utf8)print(text)}catch {print("\(error)")}}
}7673复制代码

Swift iOS : plist相关推荐

  1. Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多语言支持,基于 String

    Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多语言支持,基于 String 本地化主要包含两个部分:代码中文本的本地化 和 Stor ...

  2. Android与Swift iOS开发:语言与框架对比

    Swift是现在Apple主推的语言,2014年新推出的语言,比 Scala等"新"语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android N ...

  3. Swift iOS : WebView缓存图片的方法

    广告 Swift iOS开发小书 ,帮你快速上手开发 www.ituring.com.cn/book/2413 正文 每次加载WebView内容,如果图片可以缓存的话,速度就会非常快.默认情况下,We ...

  4. ios plist 国际化_Java与iOS对话:Java对象与Apple plist序列化

    ios plist 国际化 我很高兴地宣布我的第一个开源项目java-plist-serializer可以帮助您将Java(尤其是基于Spring的应用程序)与iOS应用程序集成在一起.   背景 我 ...

  5. ios html gif 显示,显示gif时出现巨大的内存使用Swift iOS

    我正在制作一个应用程序,它在UIImageView中显示gif,并从parse中加载gif.我偶然发现的问题是每当我加载一个Gif时,它会使用大约20 MB的内存,并且当我执行一个segue时,这个内 ...

  6. 从Java/Android到Swift iOS开发:语言与框架对比

    今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发.主要内容如下: WhyFrom Java/Android to Swift Swift语言为什么值得学习? Java ...

  7. Android Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  8. 《Swift iOS应用开发实战》——2.2 了解故事板

    本节书摘来自华章计算机<Swift iOS应用开发实战>一书中的第2章,第2.2节,作者:刘铭 著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 了 ...

  9. Swift: iOS底层基础知识-文件目录结构

    一:iOS沙盒知识 出于安全考虑,iOS系统把每个应用以及数据都放到一个沙盒(sandbox)里面,应用只能访问自己沙盒目录里面的文件.网络资源等(也有例外,比如系统通讯录.照相机.照片等能在用户授权 ...

  10. iOS Plist 文件的 增 删 改

    一:Plist 文件的创建 Plist 文件作为我们IOS开发的一种数据存储文件,还是经常会用到的.在看<X-code江湖录>的时候,看到了这一点.自己就写了一下,把写的东西分享出来!先看 ...

最新文章

  1. 图的度 知识图谱的一度关系 几度关系
  2. 8张图让你一步步看清 async/await 和 promise 的执行顺序
  3. linux 基础学习入门 2
  4. Tachyon 0.7.1伪分布式集群安装与测试
  5. 未能找到服务器的主机名,未能找到服务器的主机名
  6. Git submodule 特性
  7. WPS长文档编辑技巧之二:对样式的设置与修改
  8. Literal Web 服务器控件
  9. flex 连接mysql数据库_Flex+blazeds实现与mySQL数据库的连接(已成功实现此文的例子)...
  10. rostcm6情感分析案例分析_案例分析,小刘如何处理情感关系?
  11. 如何编写投标项目实施方案
  12. 怎么查看计算机办公软件版本的,怎样查看电脑用的什么办公软件
  13. video.js使用方法
  14. win7 显示文件扩展名
  15. Bios开启CPU虚拟化后,进不了系统,解决办法如下
  16. Hikvision (海康威视) 摄像机码率上限设置
  17. 【海码学院】web前端基础入门JavaScript之JavaScript起源和基础语法学习笔记
  18. 服务器隔离虚拟机,筛选Hyper-V提供的虚拟机隔离选项
  19. 华为海康大华摄像头编译RTSP转RTMP和HTTPFLV
  20. Unix/Linux下的Curses库开发指南——第三章curses库窗口

热门文章

  1. java编译是用javac吗_用java自带工具javac和java编译运行java程序
  2. ubuntu安装maven_Linux操作系统下将项目发布到Maven中央仓库图文教程
  3. 学生管理系统--golang--简单版本---开发框架
  4. pythonATM,购物车项目实战4-settings配置设置
  5. java 文件目录操作_Java---文件夹及文件操作
  6. python在数字后添加字符_用python生成数字、字母和特殊字符混合的字符串
  7. react前端封装接口弹出错误_react+ts打包发布后报Minified React error ..这种错误
  8. Selenium爬虫 -- 用户动态数据爬取
  9. 论文笔记《Attention Is All You Need》
  10. express+mongodb制作简单的文章发布系统(一)之环境的搭建