2011-08-28 66 views
-1

我正在使用文本编辑器iPhone应用程序,用户可以使用自定义字体,大小和颜色键入并保存笔记。所以我有一个NSString,UIFont和一个UIColor。我需要将所有这些存储在某种数据结构中,但我不确定最好的方法是什么。目前,我正在使用一个NSMutableArray,它向字符串的plist写入,另外两个NSMutableArray自定义对象在退出时保存到NSUserDefaults。但是这太复杂了,无法管理和调试。有没有更好的方法来做到这一点?在iPhone中存储文本,字体和颜色的最佳方式是什么?

+0

这是怎么我会保存这些项目:)你说你正在使用数组存储的字体和颜色 - 肯定的字体,你可以只保存颜色的名称,只是十六进制代码?这将取决于你目前如何加载并允许选择,我猜。 – Luke

回答

2

我想创建一个自定义NSObject的子类,称为AttributedText。它将使用自定义setter存储这些值,并可以使用自定义getter从数据存储中检索。如果你使用这个自定义对象,你可以很容易地将它保存到NSUserDefaults中。

0

你的方式是最直接的。如果你正在寻找的东西有点清洁,你可能会考虑建立一个小的自定义对象的职责是:

  1. 存储所需的数据,并在NSUserDefaults
  2. 保存/载入需要

定义你想要的数据对象上的简单的getter/setter API,并用它来分离出处理阵列和用户默认的复杂性。 (您将使用最你已经拥有相同的实现的,只是在不同的类。)

+0

NSDictionary在这里有什么用处吗? – Snowman

+0

这完全取决于你想要做什么。如果这是你当前的实现,使用带有键('text','font','color')的NSDictionary比使用三元素的NSMutableArray更容易。 – Tim

0

我只是存储一个属性字符串。

+0

NSAttributedString声明符合iOS上的NSCoding,但通常不起作用,因为它的几乎所有属性都是非桥接核心文本类型。 – Isabel

相关问题