我只是尝试使用递增计数器通过取计数器相对于列表长度的模数来循环遍历 (10) 个名称的列表。但是,代码似乎在这里和那里跳过了一个数字。我尝试了 modf() 和 modff() 以及不同的类型转换,但没有运气。
以下是代码示例:
defaultNameList = [NSArray arrayWithObjects:@"RacerX",@"Speed",@"Sprittle",@"Chim-Chim",@"Pops",@"Dale",@"Junior",@"Chip",@"Fred",@"Barney", nil];
float intpart;
int pickName = (int)(modff(entryCount/10.0,&intpart) * 10.0);
NSLog(@"%ld %f %f %f %d %@",entryCount, entryCount/10.0, modff(entryCount/10.0,&intpart), modff(entryCount/10.0,&intpart) * 10.0 ,pickName, [defaultNameList objectAtIndex:pickName]);
控制台给出:
0 0.000000 0.000000 0.000000 0 RacerX
1 0.100000 0.100000 1.000000 1 Speed
2 0.200000 0.200000 2.000000 2 Sprittle
3 0.300000 0.300000 3.000000 3 Chim-Chim
4 0.400000 0.400000 4.000000 4 Pops
5 0.500000 0.500000 5.000000 5 Dale
6 0.600000 0.600000 6.000000 6 Junior
7 0.700000 0.700000 7.000000 6 Junior
8 0.800000 0.800000 8.000000 8 Fred
9 0.900000 0.900000 9.000000 8 Fred
10 1.000000 0.000000 0.000000 0 RacerX
据我所知,它不应该跳过 pickName = 7 或 9,但确实如此。