有2数组
neWRadmonArray = [[NSMutableArray alloc] init];
RadmonArray = [[NSMutableArray alloc] init];
[RadmonArray addObject:@"A"];
[RadmonArray addObject:@"B"];
[RadmonArray addObject:@"C"];
[RadmonArray addObject:@"D"];
[RadmonArray addObject:@"E"];
我现在随即从RadmonArray取出一条
-(NSString *) GenerateRandom{
int randomValue = arc4random()%5;//Generate 0 - 4
NSString *returnRandom = [RadmonArray objectAtIndex:randomValue];
int i;
int total;
bool existFlag=false;
if(returnRandom==@"A" && hasGenerateBlue==true){
[self GenerateRandom];
}
for(i=0,total=[neWRadmonArray count];i<total;i++)
{
if (returnRandom == [neWRadmonArray objectAtIndex:i]){
existFlag = true;
break;
}
}
if(existFlag)//check if has generated.
{
[self GenerateRandom];
}
else
{
[neWRadmonArray addObject:returnRandom];//put generated shape into array
}
return returnRandom;
}
但是还是出重复的。。。帮忙看看,,,
------解决方案--------------------
if(existFlag)//check if has generated.
{
[self GenerateRandom];
}
else
{
[neWRadmonArray addObject:returnRandom];//put generated shape into array
}
return returnRandom;感觉就像这里的原因,如果存在了,它会调用自身函数,是不是当执行完[self GenerateRandom];之后它还会继续执行后面,后面的return returnRandom,返回的并不是你调用的[self Gen...dom]中return的东西,而是返回的你在当前这次调用函数最初赋予的,所以应该返回不出你想要的其实是递归调用的[self GeneratRandom]方法中返回的值