NSArray的范围是多少?

时间:2012-10-11 04:54:49

标签: iphone xcode

我正在开发一个阅读单词app,单词来自段落,我希望NSArray范围存储最大单词,帮助找到NSArray的大小

 NSString *string=@"Some people say that Apple will fit an A5 chip in iphone5 with a clocking speed in range of 1.2 0r 1.5 GHz with 1 GB Ram. It is also anticipated that it will b fire proof phone.  ";
    NSArray *piecesOfOriginalString = [string componentsSeparatedByString:@" "];
    NSLog(@"%i",piecesOfOriginalString.count);

这是我的简单例子。

这里,问题是如何找到最大允许的数组大小???

4 个答案:

答案 0 :(得分:4)

理论上,NSArray的最大大小由其-count方法的类型显示,即NSUInteger。对于iOS,这相当于unsigned long,因此最大计数为4,294,967,295。

实际上,您受到设备内存和阵列中对象大小的限制。

答案 1 :(得分:1)

如果你想缩小尺寸,那么     http://lapcatsoftware.com/blog/2006/10/10/filling-an-nsmutablearray/

然后读一次

Maximum amount of objects in NSArray

您将获得4或8,具体取决于您使用的是32位还是64位系统。

答案 2 :(得分:0)

如果你问:“我在这个数组中有多少元素,”你写的应该可以正常工作(虽然“count”属性返回一个NSUInteger,所以你应该使用%li String Format Specifier,而不是%I):

NSLog(@"%li",piecesOfOriginalString.count);

如果您问:“可以添加到NSArray的元素的最大数量是多少”,此问题已在此处讨论过:Maximum amount of objects in NSArray

答案 3 :(得分:0)

我不认为存在最大数组大小,它受执行点和数组内容的自由ram的限制。您可能需要一个可变数组(NSMutableArray)。

最大索引值取决于主机计算机硬件和操作系统,但通常至少为2 ^ 32-1,即4_294_967_295。有时,当一些奇怪的人使用签名索引时,它会降至2 ^ 31-1,即2_147_483_647。通常,考虑到数组项目又分配在动态内存中,它远远超过你的RAM所能容纳的,所以不要打扰;)