NSAttributedString在ios6和ios7里面不兼容 NSAttributedStringios6/7兼容性 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为initWithData是iOS7的方法,iOS6没有,你要判断一下,如果是iOS6的话,你要用initWithString 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>,怎么破啊?亲 如果你想要干掉那些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;} 我发现你的那个while循环其实和我的类别做的是相同的事情,你的while没有效果吗? 没有效果啊,NSAttributedString *attributeString = [[NSAttributedString alloc]initWithString:newString];这个 你先转newString,再把newString给NSAttributedString初始化呢? ios7的模拟器转换出来就可以了,全是文字,但是用ios6的就不行了,会有<p><br><span style=\"FONT-FAMILY: 宋体; BACKGROUND: white; COLOR: #333333; FONT-SIZE: 10.5pt; mso-ascii-font-family: T………… <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> 我试过了,可以去掉所有的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); 你在给textview赋值的时候用的是myText.attributedText还是myText.text???我用的是text 先别想太多,你在赋值之前,把text打出来,如果text不是你想要的,那么在调用去除标签的代码之前,再下断点,把去除之前和去除之后的text都打出来,看是哪里的问题,一步步调 额,已经弄好了。 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; } } 嗯啊,找到了,我在这之前把接收到的那堆字符串弄成了NSAttributedString。现在已经好了额 怎样用IB设计UIScrollView 如何启动Iphone的麦克风的后台监听 初学iPhone的菜鸟的心里话...... 在iphone开发时,登录的问题 静态构造方法和动态构造方法的区别? MVC KVO 网络请求 Images.xcassets问题咨询 ios中libxml/HTMLparser.h file not found 能不能在xcode里配置GCC 4.0的默认字节对齐? 可重用cell ios从数组n个元素中取出m个元素组成新的子数组 的所有组合 ios语音控制
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>,怎么破啊?亲
NSRange r;
NSString *s = [[self copy] autorelease];
while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
s = [s stringByReplacingCharactersInRange:r withString:@""];
return s;
}
类别:@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);
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;
}
}