在我的plist iOS上更改值

时间:2013-01-31 15:02:14

标签: ios objective-c plist

我有一个带有一个数组的.plist,在这个数组中我有一些NSDictionary。 现在我想在我的词典中更改一些值。 我的想法是加载整个数组,找到值,更改它,并写入整个数组。 但它花了很多时间。 你知道改变特殊价值的更好方法吗?

3 个答案:

答案 0 :(得分:2)

这里没有时间问题。我们来谈谈大字符号:

  1. 从阵列中获取NSDictionary的最坏情况: O(log(n)) - source
  2. 从字典中获取值的最坏情况成本: O(log(n))(参见上文来源)
  3. 在字典中对该值执行任何常量操作的成本 O(c)
  4. O(的log(n))+ O(的log(n))+ O(c)中= <强> O(的log(n))

    所以你被'卡住了'(log(n)),这一点都不错。

答案 1 :(得分:1)

如果您要使用.plist保留数据,那么除非在您进行更改时写出整个文件,否则别无选择。

存储大量数据以供更新单个记录的替代方法是使用CoreData - 它实际上是存储在设备上的数据库。

核心数据比使用plist要复杂得多,但更具可扩展性,以及使用数据库带来的所有其他好处。

答案 2 :(得分:-1)

plist有多大?你经常这样做吗?它应该不是性能问题。