【发布时间】:2012-06-13 13:33:09
【问题描述】:
我有许多不同的NSArray 存储在.dat 文件中,在我的iPhone 应用程序的Documents 文件夹中,如下所示:
john.dat
mary.dat
bob.dat etc...
.dat 文件的数量是未知的,它会根据与用户对应用程序的操作相关的许多因素而增加或减少。
.dat 文件中存储的这些NSArray's 的内容是什么?它们包含NSString's。重要的是要说 countfor 每个 NSArray 我的变化,就像这样:
john.dat Contains this array of strings:
"Mon, 11 Jun 2012 04:52:06 GMT",
"Tue, 12 Jun 2012 04:51:59 GMT",
"Wed, 13 Jun 2012 04:52:30 GMT",
"Thu, 07 Jun 2012 04:52:00 GMT",
mary.dat Contains this array of strings:
"Mon, 11 Jun 2012 04:52:06 GMT",
"Tue, 12 Jun 2012 04:51:59 GMT",
bob.dat Contains this array of strings:
"Mon, 11 Jun 2012 04:52:06 GMT",
"Tue, 12 Jun 2012 04:51:59 GMT",
"Wed, 13 Jun 2012 04:52:30 GMT",
"Thu, 07 Jun 2012 04:52:00 GMT",
"Fri, 08 Jun 2012 04:51:59 GMT",
"Sun, 10 Jun 2012 04:50:55 GMT"
等等..
我必须定期验证这些NSArray's 中的每个NSString 是否已被修改,以通知用户某些事件。从 Internet 进行 XML 解析后,我已经能够在内存中拥有新的 NSArray's,对应于之前存储在 Documents 文件夹中的相应 .dat 文件。
由于我有很多 .dat 文件,我的问题是:
我如何比较 一次有效地新的NSArray's(NSArray *john, *mary, *bob,等等... strong>)我在内存中(由于此 XML 解析),旧的存储在 Documents 文件夹中相应的 john.dat, mary.dat, bob.dat、etc... 文件中并通知如果NSString's ("Mon, 11 Jun 2012 04:52:06 GMT","Tue, 12 Jun 2012 04:51:59 GMT", etc...) 中的任何一个已被修改,用户?
感谢您的帮助!
【问题讨论】:
-
为什么不使用 SQLite 或类似的方法来存储数据?
-
是的,我可以参加 SQLite。感谢您提供宝贵的见解!
-
与其说是比较本身,但您可以使用
FNSubscribeByPath函数请求在目录中的文件更改时收到通知。那么您就不需要轮询更改了。 -
不错!我已经在搜索有关 SQLite 的信息了。
标签: iphone objective-c nsstring nsarray fast-enumeration