可可 – 将NSAttributedString转换为纯文本

我有一个NSData的实例包含源自NSTextView的属性文本(NSAttributedString)。我想将属性字符串转换为纯字符串(NSString)没有任何格式化做一些文本分析(在转换的时候,我没有访问原始NSTextView或其NSTextStorage实例)。

什么是最好的方法做到这一点?

编辑:

出于好奇,我检查了结果:

[[[self textView] textStorage] words]

这似乎是一个方便的事情做一些文本分析。生成的数组包含NSSubTextStorage的实例(下面的例子“Eastern”):

Eastern{
NSFont = “\”LucidaGrande 11.00 pt. P [] (0x7ffcaae08330) fobj=0x10a8472d0, spc=3.48\””;
NSParagraphStyle = “Alignment 0, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0,
FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0,
LineBreakMode 0, Tabs (\n 28L,\n 56L,\n 84L,\n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, Blocks (null), Lists (null),
BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0.05,
HeaderLevel 0″; }

NSSubTextStorage可能是一个私人类,因为我找不到任何文档。它还保留所有格式。

最佳答案
如果我正确理解你有一个NSData,说数据,包含编码的NSAttributedString。要逆转此过程:

NSAttributedString *nas = [[NSAttributedString alloc] initWithData:data
                                                           options:nil
                                                documentAttributes:NULL
                                                             error:NULL];

并获得纯文本没有属性你然后做:

NSString *str = [nas string];

转载注明原文:可可 – 将NSAttributedString转换为纯文本 - 代码日志