我对Objective-C比较新,所以这可能很简单:我的应用程序中有一个显示弹药数量的文本框,因此每次用户点击一个开火按钮时,文本框中的数字将一个(12> 11> 10等)下降到0.我尝试使用for和if语句,但它们不起作用(我可能使用了不正确的语法)。这就是我现在正在使用的,但显然我需要
- (IBAction)fire {
[ammoField setText:@"11"];
}
- (IBAction)reload {
[ammoField setText: @"12"];
}
答案 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]];
}
希望它对你有用。谢谢:))