开发IOS遇到数据,这里专门做frame sprite数据说明
plist
plist是property list的缩写。plist中包括一些命名值和使用Core Foundation类型创建的值的列表。这些类型包括CFString, CFNumber, CFBoolean, CFData, CFDate, CFArray, 以及CFDictionary。利用这些类型创建的数据能够高效的组织、存储和访问。plist编程接口使得分级组织的数据类型能够和XML之间相互转换。XML数据可以存储下来以便以后重建原来的一些Core Fundation对象。plist应当用于主要是由字符串和数字组成的数据,否则的话它一般效率都会较低。
plist主要有Core Fundation类型构成,也可以将这些类型放入CFDictionary和CFArray中以便构成更复杂的数据类型。在property list中,<plist>表示将property list转换为XML表。Core Fundationary类型与XML对应关系为:
Core Fundation XML
CFString <string>
CFNumber <real> 或 <integer>
CFDate <date>
CFBoolean <true/> 或 <false/>
CFData <data>
CFArray <array>
CFDictionary <dict>
在CFDictionary中数据主要由键值对组成。因此在XML中,CFDictioary成员的键对应为<key>,之后便是它相应的值。
我们这里主要介绍下命名值<key>的定义
frames 帧组
imagePath <dict> fame,offset,rotated,sourceColorRect,sourceSize <dict>
-------------------------------------------------------------------
frame 帧 <string> {{xInImage,yInImage},{w,h}}</string>
offset 相对于锚点的便移 <string>{offsetx,offsety}</string>
rotated 是否旋转 <flase/>
sourceColorRect ??
sourceSize ??
-------------------------------------------------------------------
metadata <dict>format,smartupdate,realTextureFileName<dict>
format plist格式 <integer>2</integer>
smartupdate ??
realTextureFileName 图片集合名称 <string>aaa.png</string>
A).写入plist文件:(Dictionary/Array)
NSMutableDictionary* dict = [ [ NSMutableDictionary alloc ] initWithContentsOfFile:@"/Sample.plist" ];
[ dict setObject:@"Yes" forKey:@"RestartSpringBoard" ];
[ dict writeToFile:@"/Sample.plist" atomically:YES ];
B).读取plist文件:
//读取工程中的plist,初始化Dictionary。
NSMutableDictionary* dict = [ [ NSMutableDictionary alloc ] initWithContentsOfFile:@"/Sample.plist" ];
NSString* object = [ dict objectForKey:@"RestartSpringBoard" ];
//读取目录下的plist文件到 NSMutableDictionary 中
NSMutableDictionary* dictplist = [[NSMutableDictionary alloc ] initWithContentsOfURL:[NSURL fileURLWithPath:path]];