固予

iOS 开发_NSAtrributeString与HTML之间的

2017-04-16  本文已影响957人  iOS_PM_WEB_尛鹏

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!

1.应用场景:

有些编辑器相关的地方需要我们处理富文本与超文本之间的关系

2.实现目标:

实现富文本与超文本之间的相互转化

3.代码说明:

/** 富文本NSAtrributeString格式转换为超文本HTML格式*/
- (NSString *)htmlStringByAttributeString:(NSAttributedString *)htmlAttributeString {
    NSString *htmlString;
    NSDictionary *exportParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                                   NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]
                                   };
    NSData *htmlData = [htmlAttributeString dataFromRange:NSMakeRange(0, htmlAttributeString.length) documentAttributes:exportParams error:nil];
    htmlString = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
    return htmlString;
}
/** 超文本HTML格式转换为富文本AtrributeString格式*/
- (NSAttributedString *)attributeStringByHtmlString:(NSString *)htmlString {
    NSAttributedString *attributeString;
    NSData *htmlData = [htmlString dataUsingEncoding:NSUTF8StringEncoding];
    NSDictionary *importParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                                   NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]
                                   };
    NSError *error = nil;
    attributeString = [[NSAttributedString alloc] initWithData:htmlData options:importParams documentAttributes:NULL error:&error];
    return attributeString;
}
上一篇 下一篇

猜你喜欢

热点阅读