我想知道如何序列化NSAttributedString,以便能够将其存储在核心数据managedObjectContext中。但是,我找到了this的答案,但在帖子中没有进一步的解释。有人可以解释(简而言之)如何手动编码属性字符串?非常感谢!
非常感谢!
编辑:
这就是我的所作所为:
NSMutableData *renderCacheData = [[NSMutableData alloc] init];
NSKeyedArchiver *renderCacheArchiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:renderCacheData];
[renderCacheArchiver encodeObject:bSelf.attString forKey:@"aS"];
在最后一行失败,输出如下:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFType encodeWithCoder:]:无法识别的选择器发送到实例0x1c538a70'
现在我理解其他问题,这是因为CT *对象无法自行序列化(我的NSAttributedString属性dict包含CTFont和CTColorRef属性。唯一的是 - 我不知道如何在这些类型上写一个类别或(不太可能的?)子类,因此他们能够自己序列化。