我觉得我应该首先描述我正在尝试做的事情,然后我会问我的问题。
背景
我有大量的单词(可能高达 5,000)。我希望能够在屏幕上随机显示 3 个这些词,当用户按下按钮时,它将显示另外 3 个随机词,但没有重复(即不再向用户显示相同的词)。这将循环直到计时器用完。
可能的解决方案
如果单词数较少,我只需将它们添加到 NSMutableSet 中,使用 -anyObject 3 次来获取单词,然后每次从集合中删除 3 个单词,以便下次调用时不再使用它们-任何对象。问题是我不知道我是否可以在 iOS 中设置一个包含 5,000 个 NSString 的集合。
问题
所以我的问题是
- 我可以在 iOS 中拥有一个包含大约 5,000 个字符串的集合对象(NSSet、NSArray、NSDictionary)而不会出现任何性能问题吗?
- 如果不是,我将如何从文件中读取字符串的子集以获得可接受的数组大小,然后在清空该数组时提取更多?
- 存储这些字符串的最佳方法是什么?它们只是单词,所以不是很长的单词。我正在考虑将它们添加到每行都有一个字符串的文件中,然后在应用程序加载时将它们读入一个集合对象。
提前致谢。