在Mac OS X
的Cocoa
,NeXTSTEP
和GNUstep
编程框架中,
属性列表(Property List)文件是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist
,因此通常被称为
plist文件。
Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的Mac OS中是由资源分支提供的。
使用mac os 和Core Foundation中的property list接口我们可以在层式的对象和xml文件之间进行转换。我们可以把xml文件存储起来以后再把它以对象的形式读取出来。这里我们来具体讨论下property list和他们的表现形式,以及如何在编程过程中使用他们。
这里我想提到一下NSUserDefault,它其实也是以property list 的形式来存储的,但是它有限制,比如说NSColor和NSFont等类型式不能够直接存储的,我们必须要转换他们,要把他们转换成NSData类型来存储,我想在另一篇文章在详细说说这个问题。
废话不多说,我们开始吧。
在编程的过程中,我们可以在项目中建立plist来存储一些变量,具体的操作步骤File-new-Mac OS X-Resource-Property List。我们在项目中可以以xml形式或者source Code形式来编写。比如我们的plist原代码的形式象下面的xml一样。
<?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">
<dict>
<key>Name</key>
<string>John Doe</string>
<key>Phones</key>
<array>
<string>408-974-0000</string>
<string>503-333-5555</string>
</array>
</dict>
</plist>
接下来我们从plist中读取信息,这是在iPhone开发中的应用:
//get the plist file from bundle
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
// build the array from the plist
NSMutableArray *anArray = [[NSMutableArray alloc]initWithContentOfFile:plistPath];
下面是写操作
NSString *error;
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"Data.plist"];
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects:
[NSArray arrayWithObjects: personName, phoneNumbers, nil]
forKeys:[NSArray arrayWithObjects: @"Name", @"Phones", nil]];
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict
format:NSPropertyListXMLFormat_v1_0
errorDescription:&error];
if(plistData) {
[plistData writeToFile:plistPath atomically:YES];
}
else {
NSLog(error);
[error release];
}
主要的内容来自于:
http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/PropertyLists/QuickStartPlist/QuickStartPlist.html#//apple_ref/doc/uid/10000048i-CH4-SW5
分享到:
相关推荐
com.dd.plist-用于处理属性列表的Java库 该库使您的Java应用程序能够处理各种格式的属性列表。 它是根据MIT许可条款获得许可的。 属性列表是用于存储用户设置和序列化对象的文件。 它们源自NeXSTEP编程环境,现在...
图片直接使用UI给的图片,另外的话有很多数据是在这个界面初始化的viewDidLoad()方法中,需要计算APP打开的此时的周数,并且通过NSUserDefaults类将其数据存储到plist文件中判断是否为第一次登陆,是的话跳转到登陆...
将条目添加到Info.plist中非常棘手,更不用说实现可以在iPhone和iPad上显示的UI了。 该库负责最后一部分,让您轻松选择要添加的图标! 特征 建立在UIControl之上。 可调边框,内边距,标签等 照原样放置,或使用它...
所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案(plist、preference(userdefault)、NScoder(归档))
ios 数据存储,数据持久化,包含Preference 、文件存储、归档、数据库 、 CoreData的使用
iOS数据存储方式: plist(属性列表),preference(偏好设置),SQLite,coredata plist和preference不支持自定义模型的存储 整理代码创建plist文件的方法: #pragma mark - 创建plist文件 -(void)creatPlistFileWithArr...
plist存储与取值,各种格式封装成NSDictionary.
iOS中基本的文件存储代码,偏好设置,sqlite数据库操作,封装好的操作类,使用简单,代码打开即可运行
iOS基础——数据存储之沙盒机制、Plist、Perference、归档、反归档
每个application都使用Info.plist文件来存储以上的元信息,从名称上也可以判断出Info.plist就是以上提到的“属性列表”。IOS用Info.plist来决定bundle所显示的icon,当前app支持打开的文档类型,等等其它的信息。...
主要介绍了iOS应用中存储用户设置的plist文件的创建与读写教程,plist文件是在Xcode下的项目中会被自动生成,里面采用XML格式记录数据,需要的朋友可以参考下
iOS开发中数据的存储,代码不够完整,后续会补充
iOS-OctoPodium, 在你的存储库中,发现你的Github排名 OctoPodium 检查你的位置如何根据你的存储库数量在github上进行排序。 要求iOS 10 Xcode 9.2Cocoapods 1.1将 Github.plist ( 应包含 ClientId
本地存储快递名称和对应的编码到plist文件中,大概有1096中快递
2.智能提取APP应用信息,自动生成IOS应用PLIST,开发信息,方便用户在测试。 3.支持阿里云和七牛云存储绑定。 充值点数比例固定默认比例是一比一百点。 对接码支付版的分发系统,修复官方后门与修复数据库被删除的...
实现了一个在App中常用到的聊天键盘的demo,表情用plist存储,格式为:[em_1],可以添加自己表情,方便扩展。还有拍照和获取相册照片的功能,不同功能方便切换。 github: ...
使用几个小例子分别实现 归档NSKeyedArchiver、NSUserDefaults、plist文件数据存储,简单直观,代码地址https://github.com/fancyLi/data-store。
这些通常用于OS X和iOS应用程序以及iTunes配置XML文件的编程中。 Plist文件代表存储的编程“对象”。 它们与JSON非常相似。 有效的Plist文件可表示为本地JavaScript对象,反之亦然。 用法 Node.js 使用npm安装: ...
常用工具集(各种访问权限判断工具类ios 对系统相册、相机、麦克风、通讯录、蓝牙共享、日历、提醒时间授权的简易工具、plist文件存储读取工具类、用户密码存储(SSKeyChain)工具类)
Sefaria-iOS 此存储库包含源代码和导出脚本,以生成Sefaria的的内容。 我们正在使用React-Native,所以很多应用程序都是用...入门brew install nodebrew install watchmangit clone ...-Info.plist放在ios目录中...