Swift - .plist文件数据的读取和存储
1
2
3
|
let array = NSArray (objects: "hangge.com" , "baidu.com" , "google.com" , "163.com" , "qq.com" ) let filePath: String = NSHomeDirectory () + "/Documents/webs.plist" array.writeToFile(filePath, atomically: true ) |
进入目录打开webs.plist,可以看到生成的数据如下:

1
2
3
4
5
6
7
8
9
10
11
|
<? xml version = "1.0" encoding = "UTF-8" ?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> < plist version = "1.0" > < array > < string >hangge.com</ string > < string >baidu.com</ string > < string >google.com</ string > < string >163.com</ string > < string >qq.com</ string > </ array > </ plist > |

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import UIKit class ViewController : UIViewController , UITableViewDelegate , UITableViewDataSource { @IBOutlet weak var tableView: UITableView ! var webs: NSArray ? override func viewDidLoad() { super .viewDidLoad() webs = NSArray (contentsOfFile: NSHomeDirectory () + "/Documents/webs.plist" ) self .tableView!.delegate = self self .tableView!.dataSource = self //创建一个重用的单元格 self .tableView!.registerClass( UITableViewCell . self , forCellReuseIdentifier: "cell0" ) } func tableView(tableView: UITableView , numberOfRowsInSection section: Int ) -> Int { return webs!.count } func tableView(tableView: UITableView , cellForRowAtIndexPath indexPath: NSIndexPath ) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier( "cell0" , forIndexPath: indexPath) as UITableViewCell let url = webs![indexPath.row] as ! String cell.textLabel?.text = url return cell } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
let myArray = [ [ [ "name" : "航歌" , "url" : "hangge.com" ], [ "name" : "百度" , "url" : "baidu.com" ], [ "name" : "google" , "url" : "google.com" ] ], [ [ "name" : "163" , "url" : "163.com" ], [ "name" : "QQ" , "url" : "qq.com" ] ] ] //声明一个字典 let filePath: String = NSHomeDirectory () + "/Documents/webs.plist" NSArray (array: myArray).writeToFile(filePath, atomically: true ) print (filePath) |
进入目录打开webs.plist,可以看到生成的数据如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<? xml version = "1.0" encoding = "UTF-8" ?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> < plist version = "1.0" > < array > < array > < dict > < key >name</ key > < string >航歌</ string > < key >url</ key > < string >hangge.com</ string > </ dict > < dict > < key >name</ key > < string >百度</ string > < key >url</ key > < string >baidu.com</ string > </ dict > < dict > < key >name</ key > < string >google</ string > < key >url</ key > < string >google.com</ string > </ dict > </ array > < array > < dict > < key >name</ key > < string >163</ string > < key >url</ key > < string >163.com</ string > </ dict > < dict > < key >name</ key > < string >QQ</ string > < key >url</ key > < string >qq.com</ string > </ dict > </ array > </ array > </ plist > |
下面把webs.plist文件中数据读取出来,并在表格里分区显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
import UIKit class ViewController : UIViewController , UITableViewDelegate , UITableViewDataSource { @IBOutlet weak var tableView: UITableView ! var webs: NSArray ? override func viewDidLoad() { super .viewDidLoad() webs = NSArray (contentsOfFile: NSHomeDirectory () + "/Documents/webs.plist" ) self .tableView!.delegate = self self .tableView!.dataSource = self //创建一个重用的单元格 self .tableView!.registerClass( UITableViewCell . self , forCellReuseIdentifier: "cell0" ) } // UITableViewDataSource协议中的方法,该方法的返回值决定指定分区的头部 func tableView(tableView: UITableView , titleForHeaderInSection section: Int )-> String ? { return " " ; } //在本例中,有2个分区 func numberOfSectionsInTableView(tableView: UITableView ) -> Int { return webs!.count; } //每个分区的记录数 func tableView(tableView: UITableView , numberOfRowsInSection section: Int ) -> Int { let data = self .webs?[section] return data!.count } //每个单元格创建和内容赋值 func tableView(tableView: UITableView , cellForRowAtIndexPath indexPath: NSIndexPath ) -> UITableViewCell { let cell = UITableViewCell (style: UITableViewCellStyle . Value1 , reuseIdentifier: "cell0" ) let data = self .webs?[indexPath.section] let url = data![indexPath.row][ "url" ] as ! String let name = data![indexPath.row][ "name" ] as ! String cell.textLabel?.text = name cell.detailTextLabel?.text = url return cell } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_888.html
Swift - .plist文件数据的读取和存储的更多相关文章
- CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建
CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...
- C语言进行csv文件数据的读取
C语言进行csv文件数据的读取: #include <stdio.h> #include <string.h> #include <malloc.h> #inclu ...
- HDF 文件数据的读取
http://www.cams.cma.gov.cn/cams_973/cheres_docs/cheres_doc_sat.modis.1b.html一. HDF文件格式 1.概述 HDF 是美国国 ...
- Python之TensorFlow的数据的读取与存储-2
一.我们都知道Python由于GIL的原因导致多线程并不是真正意义上的多线程.但是TensorFlow在做多线程使用的时候是吧GIL锁放开了的.所以TensorFlow是真正意义上的多线程.这里我们主 ...
- 加载plist文件数据的方法
这个pilist文件最外面的是一个数组,数组中每一个item是一个字典,我们的目的就是为了取到每一个item字典中的内容数据 下面看代码举例 //加载数组 - (void)handleData { / ...
- linux使用shell 进行文件数据的读取与排序
题目 shell脚本语言编写一个从键盘输入10名学生(含自己)的姓名. 性别.学号和家庭住址,然后按照学号排序,并将排序后的结果在屏幕上按对齐 的方式打印输出的程序. 代码 读入数据 数据排序(这里用 ...
- ios本地文件内容读取,.json .plist 文件读写
ios本地文件内容读取,.json .plist 文件读写 本地文件.json .plist文件是较为常用的存储本地数据的文件,对这些文件的操作也是一种常用的基础. 本文同时提供初始化变量的比较标准的 ...
- 黑马程序员——读取Plist文件
-iOS培训,iOS学习-------型技术博客.期待与您交流!------------ 读取Plist文件 一:新建一个plist文件,并将plist文件数据填入plist文件中,这里pli ...
- Pandas_数据读取与存储数据(全面但不精炼)
Pandas 读取和存储数据 目录 读取 csv数据 读取 txt数据 存储 csv 和 txt 文件 读取和存储 json数据 读取和存储 excel数据 一道练习题 参考 Numpy基础(全) P ...
随机推荐
- jquery日历签到控件的实现
calendar.js var calUtil = { //当前日历显示的年份 showYear:2015, //当前日历显示的月份 showMonth:1, //当前日历显示的天数 showDays ...
- php实现分页,上一页下一页
首先学东西 要多看手册用php自带的函数 可以解决一些难解的问题 <?php /** * Created by JetBrains PhpStorm. * User: Administr ...
- asp.net 开发注意的几点
WIN7中组件服务中的DCOM配置找不到Microsoft Excel应用程序的解决办法: 这主要是64位系统的问题,excel是32位的组件,所以在正常的系统组件服务里是看不到的 可以通过在运行里面 ...
- Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述
原文 Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述 第9部分:Windows Phone 8模拟器概述 原文地址: http://channel9.ms ...
- maven安装jar到本地仓库
class12.jar这个东西在中央仓库里没有,所以,cmd到oracle\product\10.2.0\db_1\jdbc\lib路径下,mvn install 就好了(发布第三方jar到本地库) ...
- UNIX 缩写风格
构建于图形界面之上的操作系统,使用鼠标作为主输入设备, 是否使用缩写并不重要.比如 Windows 系统中的目录,几乎都是全称…… 点击两次鼠标进入文件夹 pf, 并不意味着点击13次才能进入文件夹 ...
- HDU2084:数塔(DP)
Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大 ...
- 1297 - Largest Box(三分)
1297 - Largest Box PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB In t ...
- 【第三方SDK】百度地图实现最简单的定位功能(无地图界面)
在近期的项目中,须要实现无地图界面的定位功能,定位用户所在的城市.因此,本篇文章,主要介绍怎样使用百度地图SDK实现无导航界面的定位功能. 1.申请百度开发人员账户 2.创建应用,获取key 例如以下 ...
- ajax对服务器路径请求
$.post('/aaaa/bbbb/cccc', { "paraName": value}, function (data) { S ...