当前位置: 代码迷 >> Iphone >> Iphone 手机助理 Plist 文件详解 (二)
  详细解决方案

Iphone 手机助理 Plist 文件详解 (二)

热度:307   发布时间:2016-04-25 05:55:46.0
Iphone 手机助手 Plist 文件详解 (二)

上一篇文章说过Plist 的明文其实是一个xml格式的文件,但是这个文件你不能按照普通的xml文件的格式去解析,需要使用到itunes的专门导出函数来解析。

简单列一下需要使用到的函数,这些函数是从 CoreFoundation.dll 导出的。

1)  用来判断一段缓冲是什么类型的,比如字典类型,字符串,数字,数组等等。

CFGetTypeID

2) 用来将缓存的内容转换成字符串。

 CFStringGetCString

3) 判断该数字类型具体类型,比如int,short ,double 等等

CFNumberGetType

4) 如果缓存是一个数字的类型,函数用来将缓存转换成数字

CFNumberGetValue

5) 如果缓存是一个布尔的类型,函数用来将缓存转换成布尔值

CFBooleanGetValue

6) 如果缓存是一个日期类型,函数用来返回一个距离2001年1月1日0时0分0秒的描述,是一个double值。

CFDateGetAbsoluteTime

7) 如果缓存是一个二进制的数据,下面两个函数返回缓存地址,以及长度。

CFDataGetLength    CFDataGetBytePtr

8) 如果缓存是一个字典,函数用于解析字典,将一个回调函数地址传给这个函数,就可以收到key,value的回调

CFDictionaryApplyFunction

9)  如果缓存是一个数组类型,下面函数用于获取数组的长度,以及根据索引获取数据。

CFArrayGetCount   CFArrayGetValueAtIndex

大致使用流程如下

1) 把一个plist 文件读取到一段缓存。

2) 调用CFGetTypeID 函数判断缓存的类型,函数返回一个整形值。

     7: 字符串  。22: 数字  。21:布尔。37: 日期 。20: 二进制。18 :字典。19: 数组。

3) 根据不同的类型来调用相应的函数获取值

上面的3个步骤就可以解析plist文件,无论是明文的还是二进制的都可以解析出来。



iTunes 也有一部分函数用来将数组,字符串之类的转换成一个二进制的或者明文的plist 文件

1)将一个数字转换成缓存

CFNumberCreate

2) 字符串

CFDataCreate   CFStringCreateFromExternalRepresentation

3) 日期类型

CFDateCreate   

4) 缓存

CFDataCreate

5) 数组,先创建一个数组,然后往数组添加类容

CFArrayCreateMutable   CFArrayAppendValue

6) 字典,先创建一个字典,然后添加key,value 

CFDictionaryCreateMutable   CFDictionaryAddValue


转让Android,IOS 手机助手各种技术资料,文档,以及源码,有需要的可以联系我QQ: 2506314894


  相关解决方案