我正在开发一个阅读单词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);
这是我的简单例子。
这里,问题是如何找到最大允许的数组大小???
答案 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所能容纳的,所以不要打扰;)