如何从文件加载NSAttributeString?

时间:2017-10-28 09:34:29

标签: objective-c file object nsattributedstring objective-c++

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"file.txt"];
NSString *str = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
self.textInAFile = str; 

如果我想要一个NSString,我会使用这个代码...... 但我想要一个NSAttributedString,我该怎么做?你能救我吗?

1 个答案:

答案 0 :(得分:0)

NSAttributedString实现NSSecureCoding协议,该协议继承自NSCoding协议。因此,您可以将其保存为原生格式:

// To save
NSData *data = [NSArchiver archiveDataWithRootObject:attributedString];
[data writeToFile:…];

// load
NSData *data = [NSData dataWithContentsOfFile:…];
NSAttributedString *attributedString = [NSUnarchiver unarchiveObjectWithData:data];

我想提一下,有更复杂的方法来编写resp。读数据。浏览NSData的文档。我为了简单起见选择了这些。

但是,如评论中所述,您可以选择RTFD等标准格式。