0

嗨,在我的一个应用程序中,我必须分配不同的不同部分,并且在每个部分中我都有几个图像视图。我必须在任何图像视图上启动一个弹出框,因为我需要该图像标签值。我必须区分这些图像标记值,因为我使用了一个名为 count 的变量,它将从零开始。它将根据部分的数量增加,并将标签值分配给图像视图

NSString *imageTagStr = [[NSString alloc]initWithFormat:@"%d%d",count,j-1];
image1.tag = [imageTagStr intvalue];

在此我将标记值分配给图像视图,并且所有这些图像视图都是使用 for 循环以编程方式创建的。

接下来的事情是我必须长按任何部分中可用的任何图像,弹出窗口必须出现,一旦弹出窗口启动,我必须选择弹出窗口上可用的按钮,然后会出现另一个视图。

在该视图中,我将加载从数组中获取的数据。这里基于 imagetag 值意味着 substringfromindex:1 通过使用这个我得到数组中可用的数据。

现在的问题是,如果部分的数量超过 9,那么 count 将变为 10,所以如果我使用 substringfromindex 意味着我得到了(就像这个标签值中的 121 是 1 并且 count 是 12 所以如果我从可用的数组中获取对象in 21 意味着我得到了错误的数据,所以我必须解决这个问题。)

所以为了解决这个问题,我觉得生成随机的两位数字很好,我必须添加图像标签值的信息。然后总是这将是两位数,但我不知道如何生成不重复的两位数。如果有人有任何想法,请与我分享。

如果有任何示例代码,请与我分享。多谢。

4

5 回答 5

2
int intRanIndex = arc4random() % 100;

注意:-它将返回一个随机编号。在 0 到 99 之间......

于 2012-09-05T09:14:20.177 回答
0

这里不需要随机数。放

image1.tag = 256 * count + j;

然后你可以恢复countj使用

count = image1.tag / 256;
j = image1.tag % 256;

这适用于j < 256. 如果您需要更大的值j,请将 256 替换为更大的因子。

于 2012-09-05T09:22:47.583 回答
0
int min=1;
int max=16;

int randNum = rand() % (max - min) + min;
NSLog(@"random number %i",randNum);
于 2012-09-05T09:16:34.117 回答
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 随机值

或者

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);
}
于 2012-09-05T10:43:19.727 回答
0

为什么不加 10 来计数呢?

NSString *imageTagStr = [[NSString alloc]initWithFormat:@"%d%d", 10+count , j-1];
image1.tag = [imageTagStr intvalue];

如果你不想这样做,我建议你看看这个答案:非重复随机数

于 2012-09-05T09:17:03.763 回答