创建NSDictionary的最佳方法是始终具有相同的数据,并且在不同的时间需要

时间:2012-07-22 01:17:28

标签: objective-c ios plist nsdictionary

我的应用需要在不同时刻在某些单词的单数和复数版本之间进行转换。因此,我有一本字典,其中键是单数版本,值是复数版本。

我想知道在必要时重新初始化此词典的最佳方法是什么。在我看来,我有两个选择:

  1. 将此数据存储在plist中,并从plist
  2. 重新初始化字典
  3. 为NSDictionary创建一个包装器对象,该对象只有一个NSDictionary属性,其值在init方法中设置。
  4. 我的猜测是#2更快,但感觉不是很优雅。最终,子类化NSDictionary似乎是正确的方法,但是一旦我发现NSDictionary实际上是一个类集群,那么我选择不这样做。

2 个答案:

答案 0 :(得分:1)

字典会变得非常大吗?如果是这样,为什么不在应用程序激活时将其初始化为实例变量,并且不释放它。另外,我对你的第二个选项和你的评论感到困惑。你在选项中提到你要为NSDictionary创建一个包装器对象,但是你说你要将它子类化。我不确定你是否只是困惑或者是什么,但你的第二个选择(通过创建一个包含1个NSDictionary的包装器对象并初始化init中的值)对我来说似乎也是可行的。最终,任何选项都应该没问题,只要它不会对应用程序的性能造成太大影响。

答案 1 :(得分:0)

您可以使用NSKeyedArchiver将其序列化/存储到磁盘,然后使用NSKeyedUnarchiver进行回读。