有2数组 RadmonArray = [[NSMutableArray alloc] init]; 我现在随即从RadmonArray取出一条 -(NSString *) GenerateRandom{ int randomValue = arc4random()%5;//Generate 0 – 4 if(returnRandom==@”A” && hasGenerateBlue==true){ for(i=0,total=[neWRadmonArray count];i<total;i++) 但是还是出重复的。。。帮忙看看,,, |
|
发现这代码的问题在于:nsstring 记录了多个 值 ,但究竟怎么改呢。。。
|
|
30分 |
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]方法中返回的值 |
int randomValue = arc4random()%5;//Generate 0 – 4
NSString *returnRandom = [RadmonArray objectAtIndex:randomValue]; int i; int total; bool existFlag=false; if(returnRandom==@”A” && hasGenerateBlue==true){ for(i=0,total=[neWRadmonArray count];i<total;i++) if(returnRandom==@”A” && hasGenerateBlue==true){ for(i=0,total=[neWRadmonArray count];i<total;i++) |
|
if(existFlag)//check if has generated.
{ [self GenerateRandom]; } else { [neWRadmonArray addObject:returnRandom];//put generated shape into array } return returnRandom; } 而且你这段代码估计就有问题,generateRandom是有返回值的,怎么前面都没有赋值对象???? 改成if(existFlag)//check if has generated. { returnRandom=[self GenerateRandom]; } 然后尝试下 |