动态创建 Plist 文件

简介

Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件,文件是xml格式的。

 

写入plist文件

在开发过程中,有时候需要把程序的一些配置保存下来,或者游戏数据等等。 这时候需要写入Plist数据。写入的plist文件会生成在对应程序的沙盒目录里。

 1 -(void)triggerStorage
 2 {
 3 //    displayLabel.text = textInput.text;
 4     
 5     NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
 6     NSString *path=[paths    objectAtIndex:0];
 7     NSString *filename=[path stringByAppendingPathComponent:@"test.plist"];   //获取路径
 8     
 9     NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];  //读取数据
10     NSLog(@"dic2 is:%@",dic2);
11     
12     //创建一个dic,写到plist文件里
13     NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:@"displayLabel.text",@"IP",nil]; //写入数据
14 //    或者 [dic setObject:@"add some content" forKey:@"c_key"];
15     [dic writeToFile:filename atomically:YES];
16     
17 }

 

 

读取文件

 1 - (void)readData {
 2     NSMutableArray *resultData;
 3 //    获取应用程序沙盒的Documents目录
 4     NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
 5     NSString *path=[paths objectAtIndex:0];
 6     NSLog(@"path = %@",path);
 7 //    得到完整的文件名
 8     NSString *filename=[path stringByAppendingPathComponent:@"test.plist"];
 9     
10     //读文件
11     NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];
12     NSLog(@"dic is:%@",dic2);
13     if(dic2 == nil)
14     {
15         //1. 创建一个plist文件
16         NSFileManager* fm = [NSFileManager defaultManager];
17         [fm createFileAtPath:filename contents:nil attributes:nil];
18     }
19     else
20     {
21         resultData=[dic2 objectForKey:@"IP"];
22         if([dic2 count] > 0)
23         {
24 //            displayLabel.text = resultData;
25             NSLog(@"读取的值是:%@", resultData);
26         }
27         else
28         {
29 //            displayLabel.text = @" ";
30             NSLog(@"没有读取到任何值!");
31         }
32     }
33 }

 

转载于:https://www.cnblogs.com/EchoHG/p/8464743.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Everyday Mathematics]20150101

(1). 设 $f(x),g(x)$ 在 $[a,b]$ 上同时单调递增或单调递减, 试证: \[ (b-a)\int_a^b f(x)g(x)\mathrm{\,d}x \geq \int_a^b f(x)\mathrm{\,d}x\cdot \int_a^b g(x)\mathrm{\,d}x. \] (2). 试证: \[ c\in (0,1)\Rightarrow \int_c^1 \dfrac{e^t}{t}\mathrm{\,d}t \geq e\cdot …

被解放的姜戈08 远走高飞

作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 之前在单机上实现了一个Django服务器(被解放的姜戈07 马不停蹄),现在我们可以把这个服务器推上一个云平台。这里我选择使用阿里云。 看着复仇的火焰…

OpenCV修养(二)——OpenCV基本操作

文章目录2 OpenCV基本操作2.1 IO操作2.2 图像基本操作2.2.1 图像绘制2.2.1.1 绘制直线2.2.1.2 绘制圆形2.2.1.3 绘制矩形2.2.1.4 添加文字2.2.1.5 试手2.2.2 获取/修改图像的像素点2.2.3 获取图像属性2.2.4 图像通道拆分/合并2.2.5 色彩空间改变2.2.6 边界填充2.3图像算数操作2…

ylbtech-LanguageSamples-Porperties(属性)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性)1.A,示例(Sample) 返回顶部“属性”示例 本示例演示属性为何是 C# 编程语言必不可少的一个组成部分。它演示了如何声明和使用属性。有关更多信息,请参见属性(C# 编…

Altium Designer敷铜的规则设定

InPolygon 这个词是铺铜对其他网络的设置,铺铜要离其他网络远点,因为腐蚀不干净会对 电路板有影响... 问题一:: 如下图所示,现在想让敷铜与板子边界也就是keepoutlayer的间距小一点,比如0.2MM。而与走线的间距比较大,比如0.8mm。要怎么设置规…

OpenCV修养(三)——图像处理(上)

文章目录致谢3 图像处理(上)3.1 几何变换3.1.1 图像缩放3.1.2 图像平移3.1.3 图像旋转3.1.4 仿射变换3.2 图像阈值3.3 图像平滑3.3.1 图像噪声3.3.1.1 椒盐噪声3.3.1.2 高斯噪声3.3.2 均值滤波3.3.3 方框滤波3.3.4 高斯滤波3.3.5 中值滤波3.3.6 小结3.4 …

程序员福利各大平台免费接口,非常适用

电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuIdsJ_商品ID&type1 ps:商品ID这么获取:http://item.jd.com/954086.html 物流接口 快递接口: http://www.kuaidi100.com/query?type快递公司代号&postid快递单号 ps:快递公司编码:申通”shentong”…

CF940D Alena And The Heater

思路&#xff1a; 模拟。 实现&#xff1a; 1 #include <bits/stdc.h>2 using namespace std;3 const int INF 1e9;4 int a[100005], n;5 string b;6 int main()7 {8 while (cin >> n)9 { 10 for (int i 0; i < n; i) cin >> a[i]; 11 …

Android工程开发笔记一

Android工程开发笔记<一> ---------------------------------------不同 APP相互调用 activity 1.ComponentName() Intent _Intent new Intent(Intent.ACTION_MAIN); _Intent.setComponent(new ComponentName("com.semp.skipdemo002","com.semp.skipdemo…

机器学习的练功方式(十一)——逻辑回归

文章目录致谢11 逻辑回归11.1 引入11.2 激活函数11.3 损失函数11.4 梯度下降11.5 案例&#xff1a;癌症分类预测致谢 逻辑回归为什么用Sigmoid&#xff1f; - 知乎 (zhihu.com) 逻辑回归中的损失函数的解释_yidiLi的博客-CSDN博客_逻辑回归损失函数 11 逻辑回归 逻辑回归也被称…

ODB——基于c++的ORM映射框架尝试(安装)

这篇博客应该是和之前的重拾cgi一起的。当时为了模仿java的web框架&#xff0c;从页面的模板&#xff0c;到数据库的ORM&#xff0c;都找个对应的库来进行尝试。数据库用的就是ODB&#xff0c;官方网站是http://www.codesynthesis.com/products/odb/。 1、安装 odb是直接提供源…

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

【百度地图API】如何制作一张魔兽地图&#xff01;&#xff01;——CS地图也可以&#xff0c;哈哈哈 原文:【百度地图API】如何制作一张魔兽地图&#xff01;&#xff01;——CS地图也可以&#xff0c;哈哈哈摘要&#xff1a; 你玩魔兽不&#xff1f;你知道如何做一张魔兽地图不…

Linux OpenGL 实践篇-2 创建一个窗口

OpenGL 作为一个图形接口&#xff0c;并没有包含窗口的相关内容&#xff0c;但OpenGL使用必须依赖窗口&#xff0c;即必须在窗口中绘制。这就要求我们必须了解一种窗口系统&#xff0c;但不同的操作系统提供的创建窗口的API都不相同&#xff0c;如果我们在学习OpenGL时要去学习…

C++从0到1的入门级教学(一)——C++初识

文章目录1 C初识1.1 入门1.1.1 简介1.1.2 输入和输出1.1.3 头文件名1.1.5 名称空间1.2 注释1.3 变量1.4 常量1.4.1 C定义常量两种方式1.5 关键字1.6 标识符命名规则1 C初识 1.1 入门 1.1.1 简介 既然是第一次学习&#xff0c;我们就使用大家初学任何编程语言都会用的"h…

linux系统分两种更普遍的包,rpm和tar,这两种安装包如何解压与安装

2019独角兽企业重金招聘Python工程师标准>>> RPM软件包管理器&#xff1a;一种用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。rpm -ivh xxxx.rpm <-安装rpm包 -i install的意思 -v view 查看更详细的…

C++类的数组元素查找最大值问题

找出一个整型数组中的元素的最大值。 1 /*找出一个整型数组中的元素的最大值。*/2 3 #include <iostream>4 using namespace std;5 6 class ArrayMax //创建一个类7 {8 public :9 void set_value(); 10 void max_value(); 11 void sh…

ABNFBNF 巴克斯范式

https://www.cnblogs.com/qook/p/5957436.html转载于:https://www.cnblogs.com/ArcherHuang/p/8479897.html

C++从0到1的入门级教学(二)——数据类型

文章目录2 数据类型2.1 简单变量2.2 基本数据类型2.2.1 整型2.2.2 实型&#xff08;浮点型&#xff09;2.2.3 字符型2.2.4 布尔类型2.3 sizeof关键字2.4 类型转换2.5 转义字符2.6 重新谈及变量2.6.1 字面值常量2.6.2 变量2.6.3 列表初始化2.7 数据的输入2 数据类型 2.1 简单变…

大数乘法

很久没手写过大数运算了&#xff0c;以前也都是直接贴模板的&#xff0c;今晚的模拟笔试最后一道大数乘法就没调好&#xff0c;gg…… #include <iostream> #include <string> #include <cstdio> #include <cstring> using namespace std;string num1,…

获取class的名字

ele str.get_attribute(class)&#xff08;获取class的名字&#xff09;转载于:https://www.cnblogs.com/zero-77/p/8482362.html