嗨,在我的一个应用程序中,我必须分配不同的不同部分,并且在每个部分中我都有很少的imageview.Ii必须在任何imageview上启动弹出窗口,因为我需要该图像标记值。那些图像标记值我必须区分,因为我使用了一个名为count的变量,它将从零开始。它将根据部分的数量递增,并将标记值分配给图像视图
NSString *imageTagStr = [[NSString alloc]initWithFormat:@"%d%d",count,j-1];
image1.tag = [imageTagStr intvalue];
在此我将tagvalue分配给imageviews,所有这些imageview都是使用for循环以编程方式创建的。
接下来的事情是我必须对任何部分中的任何部分提供长按,然后弹出窗口弹出时我必须选择弹出窗口上的按钮,然后另一个视图将会出现。
在该视图中,我将加载从数组中获取的数据。这里基于imagetag值意味着substringfromindex:1使用这个我得到数组中可用的数据。
现在的问题是,如果部分的数量超过9,那么count将变为10,所以如果我使用substringfromindex意味着我得到(就像这个标签中的121值是1而count是12所以如果我从数组中获取对象这在21中可用意味着我得到了错误的数据,所以我必须解决这个问题。)
所以为了解决这个问题,我觉得生成随机的两位数字是好的,这个数字我必须添加图像标签值的infornt。然后总是这将是两位数,但我不知道如何生成非重复的两位数字。如果有人有任何想法请与我分享。
如果有任何示例代码请与我分享。非常感谢。
答案 0 :(得分:2)
int intRanIndex = arc4random() % 100;
注意: - 它会随机返回no。介于0到99之间.....
答案 1 :(得分:0)
int min=1;
int max=16;
int randNum = rand() % (max - min) + min;
NSLog(@"random number %i",randNum);
答案 2 :(得分:0)
为什么不加10才算?
NSString *imageTagStr = [[NSString alloc]initWithFormat:@"%d%d", 10+count , j-1];
image1.tag = [imageTagStr intvalue];
如果你不想这样做,我建议你看一下这个答案:Non repeating random numbers
答案 3 :(得分:0)
这里不需要随机数。设置
image1.tag = 256 * count + j;
然后您可以使用
恢复count
和j
count = image1.tag / 256;
j = image1.tag % 256;
适用于j < 256
。如果j
需要更大的值,请用更大的因子替换256。
答案 4 :(得分:0)
int randomIndex = rand() % 10;
NSInteger unrepeated=2147483647;
NSLog(@"randomIndex :- %d",randomIndex);
NSLog(@"arrRandomValue indexOfObject:randomIndex :- %d",[arrRandomValue indexOfObject:[NSString stringWithFormat:@"%d",randomIndex]]);
if ([arrRandomValue indexOfObject:[NSString stringWithFormat:@"%d",randomIndex]]==2147483647)
{
[arrRandomValue addObject:[NSString stringWithFormat:@"%d",randomIndex]];
unrepeated=randomIndex;
NSLog(@"unrepeated random no :- %d",unrepeated);
}
注意: - 未经重复的var。将包含2147483647或未重复的0到9随机值
OR
int randomIndex = rand() % 10;
NSInteger unRepeted=2147483647;
NSLog(@"randomIndex :- %d",randomIndex);
NSLog(@"arrRandomValue indexOfObject:randomIndex :- %d",[arrRandomValue indexOfObject:[NSNumber numberWithInt:randomIndex]]);
if ([arrRandomValue indexOfObject:[NSNumber numberWithInt:randomIndex]]==2147483647)
{
[arrRandomValue addObject:[NSNumber numberWithInt:randomIndex]];
unRepeted=randomIndex;
NSLog(@"un repeted random no :- %d",unRepeted);
}