0

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

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

2 回答 2

4

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

只需更改int randomWordIndexNSUInteger randomWordIndex.

于 2012-12-04T03:08:10.420 回答
0

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

于 2012-12-04T03:08:20.043 回答