一个 nsarray 可以容纳多少个对象?

发布于 2024-11-02 22:24:36 字数 345 浏览 5 评论 0原文

可能的重复:
NSArray 中对象的最大数量

我只是想知道我可以放置多少个对象到 NSArray 中,因为我需要找到一些功能类似于数组的东西,但我需要保存大量数据(900 到 1200 个字符串之间)。我正在考虑使用 NSDictionary 来保存数据,但它似乎不符合要求。你认为 NSArray 能容纳那么多对象,还是应该使用 NSDictionary?

Possible Duplicate:
Maximum amount of objects in NSArray

I was just wondering how many objects I can put into an NSArray, because I need to find something that functions like an array, but I need to hold a lot of data (between 900 and 1200 strings). I was thinking about using an NSDictionary to hold the data, but it doesn't seem to fit the bill. Do you think an NSArray will hold that many objects, or should I use an NSDictionary?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

亚希 2024-11-09 22:24:36

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

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

Technically, NSArray can hold up to NSUIntegerMax objects (this is the largest value that can be returned from count). On a 32-bit system like the iPhone, that is a little over 4 billion. On a 64-bit system like most Macs, it is many orders of magnitude higher. By the time you even need to think about running out of room in an NSArray, you're going to have other scaling problems to deal with first, like the fact that 4 billion four-character strings will take up something like 16 GB of memory.

NSArray has two internal implementations for differently sized arrays — 1200 items would still be well within the "small array" implementation.

场罚期间 2024-11-09 22:24:36

你有多少内存?

除了保存所有数据所需的位数之外,没有实际的上限。 1200个项目就可以了。但如果这些项目都是 10000 个单词字符串,您可能会开始需要太多内存来容纳它们。

How much memory do you have?

There is no practical upper limit other than the number of bits it takes to hold all that data. 1200 items is fine. But if those items are each 10 thousand word strings, you may start needing too much memory to hold them all.

病女 2024-11-09 22:24:36

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

You can store an unlimited number of objects in an NSArray until you run out of memory. 900-1200 strings is not a large number, but it obviously depends on the length of each string. Do you know in advance whether they will be long?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文