所以我有这个方法,通过在1-26之间创建一个随机数,然后索引一个字符串数组来取出字母,从而返回一个字母(来自A-Z)。唯一的问题是它在调用方法时不会生成新的字母。如何在每次调用方法时生成新的字母,例如在while循环中。这是我的代码:
-(NSString *)alphaGenerator{
NSUInteger randomLetterInteger = arc4random_uniform(26);
NSArray *alphabet = @[@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z"];
NSString *alpha = alphabet[randomLetterInteger];
return alpha;
}
另外,如何将从count方法返回的数字转换为可以插入arc4random_uniform方法的数字?我收到了'不兼容的整数到指针反转初始化...'错误。这就是我对此的看法:
-(NSUInteger)numOfDictions{
NSString *alpha = [self alphaGenerator];
NSUInteger numb = [cuisines[alpha] count];
NSUInteger *randomNumOfDictions = arc4random_uniform(numb);
return *randomNumOfDictions;
}
答案 0 :(得分:1)
这两行:
NSUInteger *randomNumOfDictions = arc4random_uniform(numb);
return *randomNumOfDictions;
应该是:
NSUInteger randomNumOfDictions = arc4random_uniform(numb);
return randomNumOfDictions;
NSInteger
不是对象类型。它是一种原始类型。