我可以使用以下命令从rtf字符串转换为属性字符串:
NSAttributedString *attributedStr = [[NSAttributedString alloc] initWithData:data options:@{NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType} documentAttributes:nil error:nil];
现在我怎么能从attributionString转换回rtf字符串?
答案 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];