我已经解决了本文中描述的问题,但想了解它的原因(我花了大量时间弄清楚),因为我已经在下面的“问题”中提出。UIStepper值 - 经过多次迭代后返回的垃圾值
当使用UIStepper调用IBAction方法时,我遇到了递增和递减返回值的问题。当我运行和调试应用程序时,我可以上下移动,并且日志语句总是反映了预期的步进值,但是当我迭代地增加0.1,0.2,0.3时,然后下降,当我回到0.0时,当我执行if测试,调试器中显示的changeValue的值是垃圾,测试未导致== 0.0的真实情况。请注意,如果我只增加到0.2,然后回退到0.0,那么changeValue的if测试工作。只有当我达到0.3时,当我回到0.0时,我得到了垃圾值。
最初,递增步进我设置stepValue属性为:
viewStepper.stepvalue = 0.1
和方法加紧0.3并返回到后0.0 0.0返回的垃圾值。
当我改变了分配:解决
viewStepper.stepValue - 0.1f
问题 - changeValue返回预期的0.0 changeValue我如果测试也不管迭代次数的预期方法的工作。
问题:1)我得到这个,但为什么如果stepValue是一个double值,赋值需要明确包含“f”,对我更加好奇2)为什么我的方法测试没有“f”当它分配viewStepper.stepValue属性时两个步迭代,但返回垃圾的changeValue当我做三个迭代,然后返回到0.0?
下面是该方法的核心我测试:
- (IBAction)doStepper:(UIStepper *)sender
{
double changeValue = [sender value];
NSLog(@"(double)change value %f", (double)changeValue);
NSLog(@"sender value:%0.1f", [sender value]);
if ((double)changeValue == 0.0) {
if (!something) {
// do stuff
}
// do stuff
} else {
// do stuff
}
}
了解。谢谢。 – larick 2012-07-27 19:55:47