我有一个包含80个json对象的数组。我想构建一个新的子数组,它只有4个元素(但每次从80个元素的较大数组中填充不同)只有一个特定的json键。
以下是我的代码:
[arr_sub removeAllObjects];
[arr_sub addObject:[[arr_main objectAtIndex:currentcount] valueForKey:@"e"]];
for(int i =1;i<=3;i++)
{
//int random = number between 1 to 80 -- how do i generate this ??
[arr_sub addObject:[[arr_main objectAtIndex:random] valueForKey:@"e"]];
}
如何生成0到79之间的随机索引?
答案 0 :(得分:2)
arc4random()
将生成0-1之间的随机数,U可以像这样使用它:
int min = 0;
int max = 80;
int randNum = arc4random() % (max - min) + min;
答案 1 :(得分:2)
要在范围内生成随机索引,请使用arc4random_uniform(range)
。
在你的情况下:
int random = arc4random_uniform(80);
使用arc4random_uniform()
代替arc4random()
,它与使用mod运算符没有偏差。也永远不要使用C函数rand()
,因为它的结果不是随机的。
但是JSON在哪里? JSON是一种传输表示,在Objective-C中,主要的集合类是NSArray
和NSDictionary
。收到的JSON通常与类NSJSONSerialization
一起转换为这些组合以及如下方法:
+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error
答案 2 :(得分:1)
arc4random是用于生成随机数的函数。
int randomNumber = arc4random()%80;