网络编程归纳总结三阶段
来源:互联网 发布:淘宝v6会员有多少人 编辑:程序博客网 时间:2024/06/02 14:58
网络编程归纳总结三阶段
解析plist文件
类: NSPropertyListSerialization
有一个解析数据的类方法 :propertyListWithData
字典转模型时 如果字典中的键值对多于模型的属性个数 就会报错 这时 需要重写
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {}方法
解析时间
记录时间的类:
NSCakendar
//把数字的日期,转换成日期对象 NSDate *date = [NSDate dateWithTimeIntervalSince1970:self.addtime.intValue]; NSCalendar *calendar = [NSCalendar currentCalendar]; //两个日期相减,获取指定的日期部分 NSDateComponents *components = [calendar components:NSCalendarUnitMinute fromDate:date toDate:[NSDate date] options:0]; if (components.minute < 60) { return [NSString stringWithFormat:@"%zd分钟以前",components.minute]; } //获取小时 components = [calendar components:NSCalendarUnitHour fromDate:date toDate:[NSDate date] options:0]; if (components.hour < 24) { return [NSString stringWithFormat:@"%zd小时以前",components.hour]; } //获取日期 NSDateFormatter *ndf = [[NSDateFormatter alloc] init];// ndf.dateFormat = @"yyyy-MM-dd HH:mm:ss"; ndf.dateFormat = @"MM-dd HH:mm"; return [ndf stringFromDate:date];
XML
XML (扩展式标记语言)
作用是存储和传输数据
HTML (超文本传输语言) 作用是显示数据
是以前最常用的传输文件格式
是由标记组成的 有且只能有一个根节点 节点中可以任意嵌套
XML的解析
两种方式:
SAX : iOS中的解析方式 内存占用小 只读
DOM: mac上的解析方式 iOS无法使用 需要第三方框架 内存占用大 可以读写
SAX步骤://解析数据NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];//设置代理parser.delegate = self;//开始执行代理的方法,代理的方法中开始解析的[parser parse]; //需要设置代理//代理方法执行 和 设置代理属性在同一个线程//代理的方法//1 开始解析文档- (void)parserDidStartDocument:(NSXMLParser *)parser { NSLog(@"1 开始解析文档 %@",[NSThread currentThread]);}//2 找开始节点- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict { //elementName 节点的名称 //attributeDict 标签的属性 NSLog(@"2 找开始节点 %@--%@",elementName,attributeDict);}//3 找节点之间的内容- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { // NSLog(@"3 找节点之间的内容 %@",string);}//4 找结束节点- (void)parser:(NSXMLParser *)parser :(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { //elementName 节点名称 NSLog(@"4 找结束节点 %@",elementName);}//5 结束解析文档- (void)parserDidEndDocument:(NSXMLParser *)parser { NSLog(@"5 结束解析文档");}//6 解析出错- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { NSLog(@"出错");}
DOM解析步骤:
//解析数据//DOM 文档对象模型//1 加载xml文档GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data error:NULL];//获取xml文档的根元素(标签)GDataXMLElement *rootElement = document.rootElement;// NSLog(@"%@",rootElement);NSMutableArray *mArray = [NSMutableArray arrayWithCapacity:10];//2 遍历所有的video节点 h]for (GDataXMLElement *element in rootElement.children) {//创建对象Video *v = [[Video alloc] init];[mArray addObject:v];//给对象的属性赋值//3 遍历video的子标签for (GDataXMLElement *subElement in element.children) {//给属性赋值[v setValue:subElement.stringValue forKey:subElement.name];}//4 遍历video的所有属性// NSLog(@"%@",element.attributes);for (GDataXMLNode *attr in element.attributes) {[v setValue:attr.stringValue forKey:attr.name];}
最近才开始往github上放东西 在公司写的又不能放= = 大家姑且看看吧
github地址: https://github.com/FuThD
2 0
- 网络编程归纳总结三阶段
- 网络编程归纳总结二阶段
- 网络编程归纳总结四阶段
- 网络编程归纳总结五阶段
- 网络编程归纳总结六阶段
- 网络编程归纳总结七阶段
- 网络编程归纳总结八阶段
- 网络编程归纳总结九阶段
- 网络编程归纳总结一阶段
- windows网络编程_阶段总结(1)
- 网络阶段总结
- Python网络爬虫阶段总结
- 实训阶段知识总结和归纳(一)
- 实训阶段知识总结和归纳(二)
- java学习阶段归纳总结记录-for循环嵌套
- css学习归纳总结(三)
- 网络基础总结之找工作阶段
- 淘宝架构演变三阶段简单总结
- ubuntu14安装jdk
- Oracle 10g 在window 下的安装概述 --最后一篇
- 在电脑中自定义快速打开自己的程序
- 绕口令 - 专项练习
- solr 自定义Handler
- 网络编程归纳总结三阶段
- unity animator的一种使用方式
- 25. Reverse Nodes in k-Group
- 【项目总结】之——JS分割字符串
- 批处理命令删除当前用户下的某个文件夹
- mysql性能的检查和调优方法
- unicode码转换成中文
- Java 时间输出&休眠
- thinkPHP-url重写开启方法and开启AllOverride后出现问题解决方法