【发布时间】:2012-04-20 02:37:17
【问题描述】:
我正在制作一个应用程序,其中包含我选择的非常大的单词词典(这样单词不会太复杂),并且我希望它随机选择单词。我对随机选择的单词没有问题,但是存储所有这些单词的最佳方法是什么,以及如何存储?我觉得使用 NSMutable 数组会占用太多内存来创建数千个对象,所以我还能使用什么...谢谢您的帮助
【问题讨论】:
我正在制作一个应用程序,其中包含我选择的非常大的单词词典(这样单词不会太复杂),并且我希望它随机选择单词。我对随机选择的单词没有问题,但是存储所有这些单词的最佳方法是什么,以及如何存储?我觉得使用 NSMutable 数组会占用太多内存来创建数千个对象,所以我还能使用什么...谢谢您的帮助
【问题讨论】:
【讨论】:
如果所有应用程序需要做的只是随机访问单词(因此没有基于键的查询或更新),核心数据和 SQLite 的替代方法是将 fseek() 到平面文本文件中的随机位置换行符分隔的单词,然后读出下一个完整的单词,可能是fscanf(dict,"%s\n%s\n",partial_word,full_word)。
通过使用不同的随机数重试来处理 EOF,或者将 fseek() 范围限制为从不命中文件中的最后一个单词。
上述大纲的一个问题是单词不会被统一选择。对长词后的词有偏见。在保留一个词之前丢弃strlen(partial_word)(或更大的随机数)的词可能有助于分布,如果它是一个问题。
【讨论】: