我正在尝试将XML数据保存并检索到文件中。
为此目的,我正在使用NSDictionary
的{{1}}
问题是,如何使用writeToFile:
的{{1}}编写和检索磁盘上文件的属性字符串?
答案 0 :(得分:2)
NSAttributedString
不是a property list object,因此writeToFile:
无效。
但它确实符合NSCoding
,因此您可以write it to an archive将您的字典作为根对象(假设字典中的所有其他对象也符合)。
答案 1 :(得分:2)
如果您需要比归档对象更便携的东西,请考虑使用NSAttributedString的RTF表示:
NSAttributedString* attrString = [[NSAttributedString alloc] initWithString:@"Attributed String"
attributes:@{ NSForegroundColorAttributeName: [NSColor redColor]}];
NSData* rtfData = [attrString RTFFromRange:NSMakeRange(0, attrString.length) documentAttributes:nil];
[rtfData writeToFile:@"string.rtf" atomically:YES];
你可以读回来:
NSData* rtfData = [NSData dataWithContentsOfFile:@"string.rtf"];
NSAttributedString* attrString = [[NSAttributedString alloc] initWithRTF:rtfData documentAttributes:nil];
此外,由于RTF是一种简单的文本格式,您可以将RTF数据转换为NSString并将其作为纯文本存储在字典中。