在iOS上将NSData转换为NSAttributedString

时间:2014-05-23 13:15:46

标签: ios objective-c ios7 nsdata nsattributedstring

在我的应用中,我正在尝试归档NSAttributedString对象,因此我已使用以下代码将其成功转换为NSData对象:

NSData *attrStrData = [attrStr dataFromRange:NSMakeRange(0, attrStr.length) documentAttributes:NULL error:nil];

现在我想将此NSData对象转换回NSAttributedString。我相信OSX你有一些方法可以做到这一点,但iOS上有没有?我找到了NSAttributedString+Encoding,但似乎对它的支持较少,CocoaPods无法使用。欢迎任何建议。

2 个答案:

答案 0 :(得分:7)

NSAttributedString符合NSCoding。只需使用这样的代码:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject: myAttrString];

然后当你想将NSData转换回字符串时:

NSAttributedString *myAttrString = 
  [NSKeyedUnarchiver unarchiveObjectWithData: data];

简单,相同的代码适用于Mac和iOS。

答案 1 :(得分:1)

试试这个

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithData:attrStrData options:nil documentAttributes:nil error:nil];

班级参考here