每个按钮点击减少文本框中的数字

时间:2012-08-28 06:55:30

标签: iphone objective-c ios xcode ipad

我对Objective-C比较新,所以这可能很简单:我的应用程序中有一个显示弹药数量的文本框,因此每次用户点击一个开火按钮时,文本框中的数字将一个(12> 11> 10等)下降到0.我尝试使用for和if语句,但它们不起作用(我可能使用了不正确的语法)。这就是我现在正在使用的,但显然我需要

- (IBAction)fire {

    [ammoField setText:@"11"];

}

- (IBAction)reload {

    [ammoField setText: @"12"];

}

4 个答案:

答案 0 :(得分:1)

最简单的方法是将文本转换为数字,减去该数字并重置文本,即用以下代码替换fire方法中的代码:

NSInteger ammoCount = [ammoField.text integerValue];
ammoCount--;
ammoField.text = [NSString stringWithFormat:@"%d", ammoCount];

但是不要这样做,这会让宝贝史蒂夫乔布斯哭泣。

更好的方法是将新变量添加到类型UIInteger的类中,以跟踪项目符号的数量,即:

// in interface
NSInteger _ammoCount;

...

// in implementation

- (IBAction)fire {
    _ammoCount--;
    if (_ammoCount <= 0) {
        _ammoCount = 0;
        fireButton.enabled = NO;
    }
    [ammoField setText: [NSString stringWithFormat:@"%d", _ammoCount]];
}

- (IBAction)reload {
    _ammoCount = 12;
    [ammoField setText: [NSString stringWithFormat:@"%d", _ammoCount]];
    fireButton.enabled = YES;
}

哦,不要忘记尽早致电reload以确保_ammoCount和ammoField得到初始化。

答案 1 :(得分:0)

设置实例整数

int x; 

设定值

x = 12;

改变方法

- (IBAction)fire {    
 [ammoField setText:[NSString stringWithFormat:@"%i",x]];
 x--;
}

答案 2 :(得分:0)

使用int变量

在viewdidload中设置count的值

火法将计数减少1

和重载方法将值返回到12

相应地记录或使用值

答案 3 :(得分:-3)

试试这个: -

  int i;
 -(void)ViewDidLoad 
{

  i=12;

}
 - (IBAction)fire 
{

  [ammoField setText:[NSString stringWithFormat:@"%d",i]];
  i--;
}

- (IBAction)reload {
i = 12;
[ammoField setText: [NSString stringWithFormat:@"%d", i]];
}

希望它对你有用。谢谢:))