解决方案 »

  1.   

    因为initWithData是iOS7的方法,iOS6没有,你要判断一下,如果是iOS6的话,你要用initWithString
      

  2.   

     if (IOS7_OR_LATER) {
        NSAttributedString *attributeString = [[NSAttributedString alloc]initWithData:[newString dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];
        NSScanner * scanner = [NSScanner scannerWithString:[attributeString string]];
        NSString * text = nil;
        while([scanner isAtEnd]==NO)
        {
            //找到标签的起始位置
            [scanner scanUpToString:@"<" intoString:nil];
            //找到标签的结束位置
            [scanner scanUpToString:@">" intoString:&text];
            //替换字符
         html = [[attributeString string] stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",text] withString:@""];
        }
        }else{
            NSAttributedString *attributeString = [[NSAttributedString alloc]initWithString:newString];
            NSScanner * scanner = [NSScanner scannerWithString:[attributeString string]];
            NSString * text = nil;
            while([scanner isAtEnd]==NO)
            {
                //找到标签的起始位置
                [scanner scanUpToString:@"<" intoString:nil];
                //找到标签的结束位置
                [scanner scanUpToString:@">" intoString:&text];
                //替换字符
                html = [[attributeString string] stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",text] withString:@""];
            }    }
    -------------------------
    这样ios6下,显示出来的会有html的那些修饰符的:<p><br><span style=\"FONT-FAMILY: 宋体; BACKGROUND: white; COLOR: #333333; FONT-SIZE: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; 如果火花塞使用的时间太长,火花塞损坏会使点火的能量下降,车提速</p>,怎么破啊?亲
      

  3.   

    如果你想要干掉那些html标签的话,试试为NSString添加个类别,然后添加一个方法:-(NSString *) stringByStrippingHTML {
      NSRange r;
      NSString *s = [[self copy] autorelease];
      while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
        s = [s stringByReplacingCharactersInRange:r withString:@""];
      return s;
    }
      

  4.   

    我发现你的那个while循环其实和我的类别做的是相同的事情,你的while没有效果吗?
      

  5.   

    没有效果啊,NSAttributedString *attributeString = [[NSAttributedString alloc]initWithString:newString];这个
      

  6.   

    你先转newString,再把newString给NSAttributedString初始化呢?
      

  7.   

    ios7的模拟器转换出来就可以了,全是文字,但是用ios6的就不行了,会有<p><br><span style=\"FONT-FAMILY: 宋体; BACKGROUND: white; COLOR: #333333; FONT-SIZE: 10.5pt; mso-ascii-font-family: T…………
      

  8.   

     <p><br><span style=\"FONT-FAMILY: 宋体; BACKGROUND: white; COLOR: #333333; FONT-SIZE: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-fareast\" data-mce-style=\"font-family: 宋体; background: white; color: #333333; font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-fareast;\">驾车有误区,安全放首位。下坡时,为图方便</span><span style=\"FONT-FAMILY: 宋体; COLOR: #333333; FONT-SIZE: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA\" data-mce-style=\"font-family: 宋体; color: #333333; font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;\">,有些人就挂空挡滑行,仅以刹车来控制速度,这样存在相当大的安全隐患,刹车系统会因过热而突然失灵,导致事故发生。正确的做法是根据实际车速挂上合适的挡位,让发动机制动,偶尔辅以刹车,这样既安全又延长刹车的寿命。</span></p>
      

  9.   

    我试过了,可以去掉所有的HTML标签:
    类别:@interface NSString (StripHtmlTags)-(NSString *) stringByStrippingHTML;@end@implementation NSString (StripHtmlTags)-(NSString *) stringByStrippingHTML {
        NSRange r;
        NSString *s = [self copy];
        while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
            s = [s stringByReplacingCharactersInRange:r withString:@""];
        return s;
    }@end调用:    NSString *newString = @" <p><br><span style=\"FONT-FAMILY: 宋体; BACKGROUND: white; COLOR: #333333; FONT-SIZE: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-fareast\" data-mce-style=\"font-family: 宋体; background: white; color: #333333; font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-fareast;\">驾车有误区,安全放首位。下坡时,为图方便</span><span style=\"FONT-FAMILY: 宋体; COLOR: #333333; FONT-SIZE: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA\" data-mce-style=\"font-family: 宋体; color: #333333; font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;\">,有些人就挂空挡滑行,仅以刹车来控制速度,这样存在相当大的安全隐患,刹车系统会因过热而突然失灵,导致事故发生。正确的做法是根据实际车速挂上合适的挡位,让发动机制动,偶尔辅以刹车,这样既安全又延长刹车的寿命。</span></p>";
        newString = [newString stringByStrippingHTML];
        NSLog(@"%@",newString);
      

  10.   

    你在给textview赋值的时候用的是myText.attributedText还是myText.text???我用的是text
      

  11.   

    先别想太多,你在赋值之前,把text打出来,如果text不是你想要的,那么在调用去除标签的代码之前,再下断点,把去除之前和去除之后的text都打出来,看是哪里的问题,一步步调
      

  12.   

    额,已经弄好了。  NSString * tem;
            NSScanner *scanner = [NSScanner scannerWithString:newString];
            while ([scanner isAtEnd] == NO) {
                if([scanner scanUpToString:@"<" intoString:&tem]){
                    html = [html stringByAppendingString:tem];
                }
                if([scanner scanUpToString:@">" intoString:NULL]){
                    scanner.scanLocation = scanner.scanLocation + 1;
                }
            }
      

  13.   

    嗯啊,找到了,我在这之前把接收到的那堆字符串弄成了NSAttributedString。现在已经好了额