首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS一个NSSet/NSArray/NSSet字典能有多大?

iOS一个NSSet/NSArray/NSSet字典能有多大?
EN

Stack Overflow用户
提问于 2012-06-03 08:56:33
回答 2查看 1.6K关注 0票数 5

我觉得我应该先描述一下我想做什么,然后我会问我的问题。

背景

我有很多单词(可能多达5,000字)。我希望能够在屏幕上显示这些单词中的任意3个,当用户按下一个按钮时,它将显示另外3个随机单词,但没有重复(即不再向用户呈现相同的单词)。这会一直循环到计时器用完为止。

可能解决办法

如果字数较少,我只需将这些单词添加到NSMutableSet中,使用-anyObject 3次获取单词,然后每次从集合中删除3个单词,以便在下次调用-anyObject时不再使用它们。问题是,我不知道我是否可以在iOS中拥有一个5,000 iOS的集合。

问题

所以我的问题是

  1. 可以在iOS中拥有一个集合对象(NSSet、NSArray、NSDictionary),其中包含大约5,000个字符串,没有任何性能问题?如果没有,那么如何从文件中读取字符串的子集,以获得可接受的数组大小,然后在清空数组时提取更多的字符串?
  2. 是存储这些字符串的最佳方法吗?它们只是文字,所以不是很长。我正在考虑将它们添加到每个行上都有一个字符串的文件中,然后在加载应用程序时将它们读入集合对象。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-03 09:32:51

为了了解我们正在研究的内存维数: 5000字,每个字母有8个字母,可以用UTF-8 (每个字母8位)表示。

5000 *8*8=320 000位= 40 000字节<40 kB

即使NSArrayNSSet的开销会是这个大小的两倍或三倍(当然不会),您也可以。iPhone 4S的内存大小为1GB,即1,048,576 kB,是对象大小的几千倍。总之:别担心。

您可以将单词存储在文本文件中,以空格分隔,只需将它们读入NSArray

代码语言:javascript
复制
NSArray *testArray = [stringOfTextfileContent componentsSeparatedByString:@" "];
票数 5
EN

Stack Overflow用户

发布于 2012-06-03 09:15:44

限制取决于可用的内存量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10869049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档