计算并在标签中显示

时间:2011-09-28 20:28:43

标签: iphone ios

我在尝试使用这段代码时遇到了一些麻烦。我收到了与此代码位相关的一些答案,但它解决了一个不同的问题。

基本上有两个用于测试目的的东西我希望在这里正常工作。一个当我尝试显示dist时,我希望它实际上得到在文本字段中输入的数字。目前,当我输入内容时,它会显示为零。 (我将它设置为双打因果通常可以使用双倍)。另一件事是当我将timePassed放入显示器而不是dist时,会出现一个严重的数字,这些数字应该是这两个按钮之间经过的时间量。我不确定为什么,但它经常会显示一个负数,并且数字开头时偏高。任何想法或帮助总是受到赞赏。 (我正试图让它们正确显示在屏幕上,因为一旦我知道它们正常工作,我就可以将它们放入计算中并进行计算显示。)

-(IBAction)triggerDown:(id)sender{
    [timeStart release];
    timeStart = [[NSDate alloc] init];


}

-(IBAction)triggerUp:(id)sender{
    double calc, dist;
    int mph;
    NSString *display;
    NSTimeInterval timePassed = [timeStart timeIntervalSinceNow]*1000;
    if ([distance.text length]== 0) {
        display = @"Please enter a distance";
    }
    else{
        dist = [distance.text doubleValue];
        display = [[NSString alloc] initWithFormat:@"%d MPH",dist];


    }
    speed.text = display;


    [display release];
}

让您了解正在发生的事情。按下triggerDown时,它是一个通过开始时间的按钮。然后当释放相同的按钮时,会调用triggerUp按钮,它应该获得在两者之间传递的时间以及进行计算。 (计算尚未编写)。

1 个答案:

答案 0 :(得分:1)

关于负(和模数太大)的时间:你的timeStart是过去的,所以当你做[timeStart timeIntervalSinceNow]时你得到一个负的间隔。由于timeStart将总是过去,您可以将间隔乘以-1以获得正数。 此外,当你将间隔乘以一千时,你将一秒钟变成一千秒 - 你需要除以从毫秒开始的秒数。

至于在显示中显示0 - 尝试直接将文本字段的值设置为标签:speed.text = distance.text。它会起作用吗?如果没有,请确保文本字段已连接到插座(“距离”)。