NSArray Count返回long int?

时间:2012-12-04 03:01:43

标签: objective-c xcode count nsarray long-integer

我制作一个简单的NSArray,然后从该数组中获取一个随机索引并将其存储为int,但是我得到一个警告说它应该是一个long int,即使我只期望它返回0,1或2不是它的问题,但我不明白为什么。

NSArray *randomWordList = [NSArray arrayWithObjects:@"Hello", @"Test", @"Send", nil];  
int randomWordIndex = rand() % [randomWordList count];`

2 个答案:

答案 0 :(得分:4)

NSArray的count方法返回NSUInteger,这是64位版本的unsigned long。编译器警告您的原因是因为int包含的数字范围小于long,所以它会警告您可能会丢失数据。

只需将int randomWordIndex更改为NSUInteger randomWordIndex

答案 1 :(得分:0)

你可以施展它。您必须同意编译器无法知道元素计数,因为数组是动态分配的,因此它只是假定最大值,即NSUInteger。