Objective C - 如何从NSAttributedString创建rtf

时间:2014-06-10 06:24:22

标签: ios objective-c rtf nsattributedstring

我可以使用以下命令从rtf字符串转换为属性字符串:

 NSAttributedString *attributedStr = [[NSAttributedString alloc] initWithData:data options:@{NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType} documentAttributes:nil error:nil];

现在我怎么能从attributionString转换回rtf字符串?

2 个答案:

答案 0 :(得分:10)

您想使用-dataFromRange:documentAttributes:error:

NSAttributedString *str = [[NSAttributedString alloc] initWithString:@"YOLO" attributes:nil];
NSData *data = [str dataFromRange:(NSRange){0, [str length]} documentAttributes:@{NSDocumentTypeDocumentAttribute: NSRTFTextDocumentType} error:NULL];
[data writeToFile:@"/me.rtf" atomically:YES];

当然,你想拥有一些属性,而不是" YOLO",但你明白了。

另外,如果您只是想将其写入磁盘,那么fileWrapperFromRange:documentAttributes:error: 甚至可能是一个更好的选择。您可以从Attributed String Programming Guide

找到有关阅读和写作的更多信息

答案 1 :(得分:0)

通过以下方式做到:

NSData *rtfdata = [attributedText RTFDFromRange:NSMakeRange(0, attributedText.length)
                documentAttributes:nil];