我是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];
加载它。但我想要的是用颜色,字体等保存和加载富文本。
由于某种原因,它无法正确保存或加载。有人可以指出我的错误吗?
答案 0 :(得分:0)
SaveFBCover1
从Cover1.stringValue
获取NSString,而不是NSAttributedString
,因为。{看起来你的代码正确地保存了这个字符串,并且当你再次加载它时你可能会收回字符串,但你不会得到属性,因为你没有从属性字符串开始,也没有得到属性文本视图中的文本并单独保存。
您可以使用
获取属性字符串SaveFBCover1 = Cover1.attributedStringValue;
但是,你将不得不做更多的工作来保存和加载字符串(尽管不多)。 NSAttributedString
不是您可以直接在NSUserDefaults
中保存的类型之一,因此您需要先将其序列化为NSData
的实例。您可以使用键控归档器轻松完成此操作。请阅读存档和序列化编程指南中的Keyed Archives。