HTML String <=> NSAttributedString

1. 官方方法

1.1 HTML String => NSAttributedString

- (nullable NSAttributedString *)getAttributedStringFromHTMLString:(NSString *)string
{
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                              NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)};
    
    if (data)
    {
        return [[NSAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
    }
    
    return nil;
}

PS: 这个方法会丢失 HTML String 中删除线的样式

1.2 NSAttributedString => HTML String

- (nullable NSString *)getHTMLStringFromAttributedString:(NSAttributedString *)attributedString
{
    NSDictionary *documentAttributes = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
    NSData *data = [attributedString dataFromRange:NSMakeRange(0, attributedString.length) documentAttributes:documentAttributes error:NULL];
    
    if (data)
    {
        return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    }
        
    return nil;
}

2. DTCoreText

为了解决删除线信息在转换过程中丢失的问题,我们改用了 DTCoreText。

2.1 HTML String => NSAttributedString

2.2 NSAttributedString => HTML String

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,269评论 4 61
  • 现在做人感到越来越虚,随着年龄的增长应该越来越踏实,而不是越来越心虚。这说明平时有些事情做的不好,处理不恰当,把很...
    瑞锦高阅读 154评论 0 0
  • 我能想象,电话那头的你,独自坐在床头,桌上放着一包纸巾,地上满是一个个饱含泪水的纸团。 我能想象,你的...
    再见欢颜阅读 1,135评论 0 2
  • 一个病人去医院看病,走进诊疗室。 医生说:“请坐。”病人说:“为什么要坐呢?难道你要剥夺我的不坐的权利吗?”医生无...
    夏达人阅读 469评论 0 3