iOS中Objetive-C,我试图让用户在文本字段中键入数字来设置一个随机数生成函数的上界在Carc4random_uniform输出问题
- (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但仍然不输出正确的范围。
有人可以帮忙吗?谢谢
可能重复[到的NSTextField UINT16 \ _t](http://stackoverflow.com/questions/6600122/nstextfield-to- uint16-t) –
其他人已经给你完整的答案。将来,请尝试自己调试代码。分配upperBound后设置一个断点,并检查该值。你应该知道,类型转换和类型转换是两个不同的东西。当你将类型转换为另一种类型时,它不会将其转换,它只是将值填充到其他类型的变量中,而不会产生编译器警告。你不能输入一个NSString到任何整数值。您必须调用一个转换方法,如intValue或integerValue,如以下2个答案所解释的。 –