随机数发生器方法

时间:2014-05-29 19:54:07

标签: objective-c ios7

所以我有这个方法,通过在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;
}

1 个答案:

答案 0 :(得分:1)

这两行:

NSUInteger *randomNumOfDictions = arc4random_uniform(numb);
return *randomNumOfDictions;

应该是:

NSUInteger randomNumOfDictions = arc4random_uniform(numb);
return randomNumOfDictions;

NSInteger不是对象类型。它是一种原始类型。