arc4random_uniform输出问题

时间:2014-02-22 22:17:41

标签: ios objective-c cocoa random

在iOS Objetive-C中的

我试图在文本字段中输入用户键入的数字,以设置C中随机数生成函数的上限。

- (IBAction)pushTheButton2:(id)sender {
    u_int32_t upperBound = (u_int32_t) textField3.text;
    textField4.text = [NSString stringWithFormat:@"%d", arc4random_uniform(upperBound)];
}

输出是一个毫无意义的巨大数字。要测试函数是否有效,如果我对arc4random_uniform函数中的实际上限进行硬编码,例如arc4random_uniform(5),那么它可以工作!

我认为这可能是某种文字转换,因此我尝试使用u_int32_t进行此操作,但仍未输出正确的范围。

有人可以帮忙吗?感谢

2 个答案:

答案 0 :(得分:0)

您当前正在使用文本的内存引用指针并将其用作上限。

尝试做这样的事情......

NSInteger upperBound = [textfield.text intValue];

这会将字符串转换为int,然后可以在arc随机函数中使用。

答案 1 :(得分:-1)

要将字符串解析为整数,您应该这样做:

NSInteger upperBound = [textfield.text integerValue];