替换 HTML 实体
由于您正在从 WebService 保存数据,因此您可以使用此 NSString category for HTML,如本文所述:Objective-C: How to replace HTML entities?
(HTML 实体类似于:‘ - 更多关于wikipedia)
类别中可用的方法有:
- (NSString *)stringByConvertingHTMLToPlainText;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
对 cmets 的回应
[NSAttributedString initWithHTML: documentAttributes:]
从包含在给定数据对象中的 HTML 中初始化并返回一个新的 NSAttributedString 对象。
NSData* htmlData = [yourHTMLString dataUsingEncoding:NSUTF8StringEncoding]
NSAttributedString* theAttributedString = [[NSAttributedString alloc] initWithHTML:htmlData documentAttributes:NULL];
我一直都在使用它,而且效果很好。我什至用它做了一个宏:
#define html2AttributedString(htmlString) \
[[[NSAttributedString alloc] initWithHTML:[(htmlString) dataUsingEncoding:NSUTF8StringEncoding] \
documentAttributes:NULL] autorelease]
用法:
NSAttributedString* attributedString = html2AttributedString(yourNSString);
然后,您可以为颜色、对齐方式、字体等制作宏…
对于 iOS,您可以查看 this page,他们会在其中为您提供替代品。
我们的 initWithHTML 方法旨在完美匹配
Mac版。这对于角色来说是可能实现的,我有
单元测试到位,以确保它保持完美。
关于属性有很多事情要做
在 iOS 上略有不同以实现相同的外观。我不会打扰你
那里有详细信息。