ios - 在iOS上将NSData转换为NSAttributedString

标签 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上不可用。欢迎任何建议。

最佳答案

NSAttributedString符合NSCoding。只需使用如下代码:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject: myAttrString];

然后,当您要将NSData转换回字符串时:
NSAttributedString *myAttrString = 
  [NSKeyedUnarchiver unarchiveObjectWithData: data];

简单,并且相同的代码在Mac和iOS上均可工作。

关于ios - 在iOS上将NSData转换为NSAttributedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830260/

相关文章:

ios - Swift:添加到新 View 时,图像不会出现在 ImageView 中

ios - 使 UIImageView 固定到其 super View 的顶部、左侧、右侧、底部、等宽和等高的编程方式是什么?

objective-c - 随时访问在另一个 View Controller 中创建的对象

ios - GADInterstitial 未在 iOS 上触发任何委托(delegate)方法

ios - 如何在 UITableView Swift 中自动调整静态单元格的大小

android - Titanium - ti.app.proper 的生命周期

ios - 图像在 ios 7.1 中不拉伸(stretch)但在 7.0 和 8.0 中完美运行

iphone - 对同一个对象以不同方式调用 retain 如何工作?

ios - .plist 替代 setIdleTimer

objective-c - 如何从另一个类调用@selector 方法