【发布时间】:2014-05-29 19:54:06
【问题描述】:
所以我有这个方法,它通过创建一个介于 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;
}
【问题讨论】:
-
你想用 randomNumOfDictions 做什么?您正在为指针分配一个随机数,然后取消引用并返回它指向的任何垃圾?这没有任何意义。看起来 alphaGenerator 应该可以工作。尝试从循环中重复调用它并记录其输出。我认为问题出在你的 numOfDictations 方法上——它试图做什么并不明显,但我很确定它已经坏了。
-
去掉
numOfDictions方法中每个randomNumOfDictions旁边的星号。 -
我有一本字典,美食,有 26 个数组(A-Z)。在这些数组中的每一个中都有字典,每个字典都包含 2 个字符串,名称和描述。我首先尝试计算由 alphaGenerator 选择的随机字母数组中的字典数量。然后我想创建并返回一个随机数,它是字典数量中的最大值....@rmaddy,是的,我不知道为什么它们在那里。谢谢
-
@MartinR 该副本与此问题无关。
-
@rmaddy:这个问题(至少)有两个部分(这总是不好的)。 第一部分(在标题中也提到了)“我如何在每次调用方法时生成一个新字母”它清楚地是关于创建随机元素而不重复和应一式两份回答。 - 但我会在争论之前重新打开它。
标签: objective-c ios7