1

我想知道如何将 NSAttributedString 序列化为能够将其连续存储在核心数据 managedObjectContext 中。但是,我找到了这个答案,但线程中没有进一步的解释。有人可以解释(简而言之)如何手动编码属性字符串吗?将不胜感激!

非常感谢!

编辑:

这就是我所做的:

NSMutableData *renderCacheData = [[NSMutableData alloc] init];
    NSKeyedArchiver *renderCacheArchiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:renderCacheData];
    [renderCacheArchiver encodeObject:bSelf.attString forKey:@"aS"];

在它失败的最后一行,输出如下:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFType encodeWithCoder:]:无法识别的选择器发送到实例 0x1c538a70”

现在我理解了这里的其他问题,这是由于 CT* 对象无法自行序列化(我的 NSAttributedString 属性字典包含 CTFont 和 CTColorRef 属性。唯一的事情是 - 我不知道如何编写类别或(不太可能?)这些类型的子类,因此它们能够序列化自己。

4

0 回答 0