nsarray可以容纳多少个对象?

时间:2011-04-21 21:24:17

标签: objective-c cocoa nsarray nsdictionary

  

可能重复:
  Maximum amount of objects in NSArray

我只是想知道我可以在NSArray中放入多少个对象,因为我需要找到像数组一样的函数,但我需要保存大量数据(900到1200个字符串之间)。我正在考虑使用NSDictionary来保存数据,但它似乎不符合要求。你认为NSArray会持有那么多对象,还是应该使用NSDictionary?

3 个答案:

答案 0 :(得分:6)

从技术上讲,NSArray可以容纳NSUIntegerMax对象(这是可以从count返回的最大值)。在像iPhone这样的32位系统上,这个数字略高于40亿。在像大多数Mac一样的64位系统上,它要高出许多个数量级。当你甚至需要考虑在NSArray中耗尽空间时,你将首先处理其他扩展问题,比如40亿个四字符字符串会占用16 GB的内存

NSArray有两个不同大小的数组的内部实现 - 1200个项目仍然在“小数组”实现中。

答案 1 :(得分:2)

你有多少记忆?

除了保存所有数据所需的位数之外,没有实际的上限。 1200件物品很好。但是如果这些项目每个都是1万个字符串,你可能会开始需要太多的内存来保存它们。

答案 2 :(得分:1)

您可以在NSArray中存储无限数量的对象,直到内存不足为止。 900-1200字符串不是一个很大的数字,但它显然取决于每个字符串的长度。你事先知道他们是否会长吗?

相关问题