0

我正在开发一个阅读单词应用程序,单词来自段落,我希望 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

4 回答 4

4

理论上,一个 NSArray 的最大尺寸由它的-count方法的类型来表示,即NSUInteger. 对于 iOS,这相当于一个unsigned long,因此最大计数为 4,294,967,295。

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

于 2012-10-11T05:08:30.760 回答
1

如果你想细化尺寸然后
http://lapcatsoftware.com/blog/2006/10/10/filling-an-nsmutablearray/

然后读一次

NSArray 中的最大对象数量

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

于 2012-10-11T06:01:08.163 回答
0

我认为没有最大数组大小之类的东西,它受到执行点的可用内存和数组内容的限制。您可能需要一个可变数组 (NSMutableArray) 来代替。

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

于 2012-10-11T05:16:36.630 回答
0

如果你问:“我在这个数组中有多少元素”,你写的应该可以正常工作(尽管“count”属性返回一个 NSUInteger,所以你应该使用 %li 字符串格式说明符,而不是 %i) :

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

如果您要问:“可以添加到 NSArray 的最大元素数量是多少”,这里已经讨论过这个问题:NSArray 中的最大对象数量

于 2012-10-11T05:09:02.933 回答