UI:数据的解析
在懒加载的时候要注意事项:
必须使用 self.XX 的样式去开辟空间,不能使用 _XX 的格式去开辟,因为前者是内部的 set 方法,而后者并不走内部的 set 方法。
json 文件的创建 xml 文件的创建。
XML 是一种标签语言(数据结构比较简单) 解析的两种原理
1.SAX 解析 : 基于事件的回调的解析机制,(主要区别于 DOM 解析)一行一行的解析 (缺点:效率低),适合大数据解析。系统提供好的类 NSXMLParser
2.DOM 解析 : 把解析数据全部读入内存,初始化为树形结构,然后再进行逐层的分析,相对于 SAX 解析,效率高,不适合大数据的读取。一般都是采用谷歌提供的第三方类 GDataXMLNode
所谓“解析”:从事先规定好的格式中提取数据
解析的前提:提前约定好格式、数据提供⽅方按照格式提供数据、 数据获取⽅方则按照格式获取数据
SAX 解析数据的步骤:
1.获取数据 : NSString * filePath= [NSBundle mainBundle]pathForResouce:@"文件名" ofType:@"文件类型"];
2.创建解析对象:NSData * data = [NSData dataWithContentsOfFile:filePath]; NSXMLParser * paser =[ [NSXMLParser alllock]initWithData:data];
3.设置回调代理,视图控制器对象: paser.delegate =self;
4.在 NSXMLParserDelegate 协议中有4 个方法能够配合我们很好的获取数据
//开始读取标签的方法
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{}
//当读到一个结束标签的时候
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{}
//当读到解析内容的时候
-(void)parser:(NSXMLParsaer *)parser foundCharacters:(NSString *)string{}
//当解析完成的时候
-(void)parserDidEndDocument:(NSXMLParser *)parser{}
注意在写 xml 文件的时候,一定要把所有的注释都清理掉 在属性的标签里也不能写 @ 号
在使用 Dom 解析数据的时候,要注意使用,谷歌开发的第三方辅助类
json 参考