1。使用
2。使用
我正在尝试使用RTFDFromRange
方法将NSAttributedString
转换为NSData
。得到这个:
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];
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上运行。
该方法仅在Cocoa (OSX)下可用,因为它是AppKit添加到NSAttributedString
的一部分。
这是一个开源类别,可能会在iOS下做你想要的(但没有亲自测试)。