作家
登录

iOS数据优化之处理HTML字符串

作者: 来源: 2017-12-08 09:38:01 阅读 我要评论

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散


比来项目碰到的问题,因为后台返回的数据是HTML字符串,所以就按照惯例处理方法把HTML字符串转换成富文本的字符串来处理,事实证实,tableview会异常卡,并且造成线程壅塞,无法响应事宜

iOS数据优化之处理HTML字符串

  1. 在cell的model的set办法中刚开端是如许操作的~~~~~异常卡 
  2. -(void)setModel:(XAPublicWelfareModel *)model{ 
  3. //这就是耗时操作的代码 
  4. NSAttributedString * attrStr = [[NSAttributedString alloc]initWithData:[model.content dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType} documentAttributes:nil error:nil]; 
  5.  self.introLabel.attributedText = attrStr; 

解决筹划1

起首我想到的是把耗时操作放在子线程来操作

  1. //1.获取一个全局串行队列 
  2.     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
  3. //2.把义务添加到队列中履行 
  4.     dispatch_async(queue, ^{ 
  5.           
  6.         NSAttributedString * attrStr = [[NSAttributedString alloc]initWithData:[model.content dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType} documentAttributes:nil error:nil]; 
  7.           
  8.         dispatch_async(dispatch_get_main_queue(), ^{ 
  9.               
  10.             self.introLabel.attributedText = attrStr; 
  11.               
  12.         }); 
  13.           
  14.     }); 

固然解决了,卡屏,线程壅塞的问题,然则并没有解决根本问题,数据处理照样很慢,不建议应用

因为是cell展示,所以只须要展示文本信息就行,那就过滤掉落HTML标签,刹时解决所有问题。所以在列表展示数据的时刻HTML转换NSAttributedString必定要慎用

  1. -(void)setModel:(XAPublicWelfareModel *)model{ 
  2. //调用去除HTML标签的办法,直接赋值。 
  3. self.introLabel.text = [self filterHTML:model.content]; 
  4. //去除标签的办法 
  5. -(NSString *)filterHTML:(NSString *)html 
  6.     NSScanner * scanner = [NSScanner scannerWithString:html]; 
  7.     NSString * text = nil; 
  8.     while([scanner isAtEnd]==NO
  9.     { 
  10.         [scanner scanUpToString:@"<" intoString:nil]; 
  11.         [scanner scanUpToString:@">" intoString:&text]; 
  12.         html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",text] withString:@""]; 
  13.         //去除空格   

      推荐阅读

      谈“软件定义安全”的云计算安全实现方式

    开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散基于安然域安排响应的防护办法,实现纵深防御,知足云寂?娼台的安然保障请求。 应用背景跟着云计算、软件定义收集SDN等新技巧的广>>>详细阅读


    本文标题:iOS数据优化之处理HTML字符串

    地址:http://www.17bianji.com/lsqh/39580.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)