如何导入一个非常大的数组Objective-C

3

我正在创建一个iOS单词游戏,需要导入英语词典中的每一个单词。我需要检查一个字符串是否是数组或集合中的一部分,或者是其他什么东西。导入和利用数据的最佳和最节省内存的方法是什么?


2
我认为如果你把字典中的每个单词都加载到内存中,那么你的做法是错误的。难道你不能根据需要从数据库中查找单词吗? - woz
1
如果必须本地存储数据,强烈建议使用Core Data。 - The Kraken
2个回答

3

我感觉自己在为他们工作,哈哈,但LexiconText的产品确实很好,而且判断一个单词是否在字典中并不是太难:

Lexicontext *dictionary = [Lexicontext sharedDictionary];
BOOL wordExists = [dictionary containsDefinitionFor:@"MyWord"];

注意:除了是一位快乐的用户外,我与lexicontext没有任何关联。


这个的内存占用有多大? - Ravi
@Ravi 很低。它在后台使用了 SQLite 的修改版,所以只会加载它需要的内容。 - Richard J. Ross III

0
你应该使用SQLite或另一个数据库来存储字典。然后,您就不必将它全部加载到内存中,而是可以快速加载单词。

1
我不确定在这种情况下SQLite是否是最佳解决方案。数据结构不是基于表格的,而是基于数组的。也许如果OP试图存储单词定义以及其他元数据,但SQLite似乎太复杂了。我建议使用CoreData代替。 - Richard J. Ross III
是的,使用Core Data是访问数据的首选方式。我的意思是说,OP应该重新设计他加载数据的方式,以便他不必从一个大文件中读取所有数据。 - David V

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接