NSAttributedString到NSData没有'NSAttributedString'的可见@interface声明选择器'RTFDFromRange:documentAttributes:

时间:2014-08-05 08:51:10

标签: ios nsdata nsattributedstring

我正在尝试使用NSAttributedString方法将NSData转换为RTFDFromRange。得到这个:

No visible @interface for 'NSAttributedString' declares the selector 'RTFDFromRange:documentAttributes:

我的代码出了什么问题?

NSAttributedString *val=self.textview.attributedText;
    NSData *data = [val RTFDFromRange:NSMakeRange(0, self.textview.text.length) documentAttributes:nil];

2 个答案:

答案 0 :(得分:10)

NSAttributedString没有针对iOS的RTFDFromRange方法,但仅适用于Mac OS X.

要在iOS中将NSAttributedString转换为NSData,您可以尝试以下两种方法:

1。使用initWithData

NSMutableAttributedString *val = [[NSMutableAttributedString alloc] initWithData:data options:nil documentAttributes:nil error:nil];

2。使用NSKeyedArchiver

NSData *data = [NSKeyedArchiver archivedDataWithRootObject: val];

NSData转换回字符串:

NSAttributedString *val = [NSKeyedUnarchiver unarchiveObjectWithData: data];

此代码适用于Mac和iOS。

请参阅Apple文档here

答案 1 :(得分:1)

该方法仅在Cocoa(OSX)下可用,因为它是AppKit AdditionsNSAttributedString的一部分。

Here's an open source category可能会在iOS下执行您想要的操作(但不会经过个人测试)。