我试图在文本字段中输入用户键入的数字,以设置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进行此操作,但仍未输出正确的范围。
有人可以帮忙吗?感谢
答案 0 :(得分:0)
您当前正在使用文本的内存引用指针并将其用作上限。
尝试做这样的事情......
NSInteger upperBound = [textfield.text intValue];
这会将字符串转换为int,然后可以在arc随机函数中使用。
答案 1 :(得分:-1)
要将字符串解析为整数,您应该这样做:
NSInteger upperBound = [textfield.text integerValue];