1

我是 Objective-C 的新手,我找不到我的问题的答案。我编写了一个简单的程序,使用文本字段输入一些文本,然后使用:

SaveFBCover1 = Cover1.stringValue;
DefaultCover1 = [NSUserDefaults standardUserDefaults];
[DefaultCover1 setObject:SaveFBCover1 forKey:@"SaveCover1"];
[DefaultCover1 synchronize];

保存它。之后,它会这样做

DefaultCover1 = [NSUserDefaults standardUserDefaults];
loadFBCover1 = [DefaultCover1 objectForKey:@"SaveCover1"];
FBCoverImageText = [NSString stringWithFormat:@"%@", loadFBCover1];

加载它。但我想要的是保存和加载带有颜色、字体等的富文本。

由于某种原因,它无法正确保存或加载。有人可以指出我的错误吗?

4

1 回答 1

0

SaveFBCover1正在从 NSString 获取 NSString Cover1.stringValue,而不是NSAttributedString,因为 . 看起来您的代码正确保存了该字符串,并且当您再次加载它时可能会恢复该字符串,但是您不会获得属性,因为您没有以属性字符串开头,也没有获得属性文本视图中的文本并分别保存。

您可以通过使用获取属性字符串

SaveFBCover1 = Cover1.attributedStringValue;

但是,您将不得不做更多的工作来保存和加载字符串(虽然不多)。NSAttributedString不是您可以直接保存的类型之一NSUserDefaults,因此您需要将其序列化为NSDatafirst 的实例。您可以使用键控存档器轻松完成此操作。阅读档案和序列化编程指南中的键控档案

于 2013-08-08T17:40:41.403 回答