从文件中抓取文本

时间:2010-08-14 12:53:41

标签: iphone text ios4

仍在努力完成这个计划。我的待办事项列表中的下一个任务是从预先生成的列表中选择随机单词。我已经对随机化代码进行了排序,但我现在需要知道从我的大列表中存储和检索单词的最佳方法(这是一个相当大的列表 - 超过220个单词)。

由于我正在为iPhone设计,因此内存是最重要的考虑因素。因此,我希望避免将整个文件加载到内存中。我宁愿把文件布局好,这样我就可以直接跳到文件中的索引位置,只抓取我需要的数据。如果我可以使用我已经拥有的所有文字的文本文件会很好,但我不介意转换,如果有其他方法的好处。

有人对最佳方法有任何建议吗?

-Ash

2 个答案:

答案 0 :(得分:1)

嗯,220个单词并不是一个很重要的列表:-)假设每个单词很长,比方说20个字符。然后你说的是4.4kB。所以我不担心这里的尺寸。正如凯文指出的那样,[NSArray arrayWithContentsOfFile:...]可能是最简单的方法(也可以查看[NSDictionary dictionaryWithContentsOfFile:...])。

但如果你的名单变得非常大(比如10000字)那么我建议你阅读一下iPhone上也支持的SQLite。

答案 1 :(得分:0)

不要担心存储空间(所需的存储空间远远小于您的想象)。使用PLIST(文件>新文件>资源(Mac OS X)>属性列表)和 arrayWithContentsOfFile 来加载单词simple(将数组定义为PLIST中的根项; Apple的文档有进一步的细节)。然后,简单地说:

srandom(time(NULL));
NSUInteger index = rand() % [array length];
NSString *word = [array objectAtIndex:index];