Objective c 从UILabel中显示的整数中减去一

Objective c 从UILabel中显示的整数中减去一,objective-c,ios,cocoa-touch,uilabel,Objective C,Ios,Cocoa Touch,Uilabel,我有一个UILabel,当按下一个按钮时,它的值加一,基本上是向上计数。谁能帮我按一下减号键吗?这样,如果用户意外地按了超出需要的“添加”按钮,他们可以减去错误。我已经尝试过了,但是现在标签的文本设置为-1。我希望它每次按下时减去一: - (IBAction)subtractButton:(id)sender { static int integerSaved; integerSaved = integer; integerSaved -= 1; [label2

我有一个
UILabel
,当按下一个按钮时,它的值加一,基本上是向上计数。谁能帮我按一下减号键吗?这样,如果用户意外地按了超出需要的“添加”按钮,他们可以减去错误。我已经尝试过了,但是现在标签的文本设置为-1。我希望它每次按下时减去一:

- (IBAction)subtractButton:(id)sender {
    static int integerSaved;
    integerSaved = integer;
    integerSaved -= 1;
    [label2 setText:[NSString stringWithFormat:@"%i", integerSaved]];
}
试试这个:

- (IBAction)subtractButton:(id)sender {
[label2 setText:[NSString stringWithFormat:@"%d",[label2.text intValue] - 1]];
}
试试这个:

- (IBAction)subtractButton:(id)sender {
[label2 setText:[NSString stringWithFormat:@"%d",[label2.text intValue] - 1]];
}
此代码假定您没有使用Interface Builder,并且您正在手动将“subtract”链接到UIButton。如果您使用的是Interface Builder,请尝试以下代码

-(IBAction)subtract:(id)sender
{
   label2.text = [NSString stringWithFormat:@"%d", [label2.text intValue]-1];
}
我还没有测试过这个,但我认为它应该可以工作。祝你好运

此代码假定您没有使用Interface Builder,并且您正在手动将“subtract”链接到UIButton。如果您使用的是Interface Builder,请尝试以下代码

-(IBAction)subtract:(id)sender
{
   label2.text = [NSString stringWithFormat:@"%d", [label2.text intValue]-1];
}

我还没有测试过这个,但我认为它应该可以工作。祝你好运

使用
UIView
实例的值执行算术不是正确的方法。您真的应该将数据模型从视图中分离出来

在某个类中公开
int
NSInteger
NSNumber
属性,该类专用于保存应用程序的数据值

当给定按钮出现触摸事件时,增加data属性并触发通知,根据属性中的内容更新视图。或向属性中添加一个。然后,观察者会在特性值更改时更新视图


遵循MVC模式将是一种更“苹果”式或“iOS”式的处理方式,而不是获取
UIView
的值,将其转换为整数,然后再将其转换回字符串。

使用
UIView
实例的值进行算术不是一种方式。您真的应该将数据模型从视图中分离出来

在某个类中公开
int
NSInteger
NSNumber
属性,该类专用于保存应用程序的数据值

当给定按钮出现触摸事件时,增加data属性并触发通知,根据属性中的内容更新视图。或向属性中添加一个。然后,观察者会在特性值更改时更新视图


遵循MVC模式将是一种更为“苹果式”或“iOS式”的处理方式,而不是获取
UIView
的值,将其转换为整数,然后再将其转换回字符串。

好的,我尝试了这个方法,但我得到一个错误,它指向-1之后的最后一个“]”,它只是说“预期标识符”。你知道密码有什么问题吗?我搞不懂?你在“NSString”前面加了一个括号。去掉它,现在在NSString上调用intValue应该可以了。好吧,我试过了,但是我得到了一个错误,它指向-1后面的最后一个“]”,它只是说“预期标识符”。你知道密码有什么问题吗?我搞不懂?你在“NSString”前面加了一个括号。去掉它,现在在NSString上调用intValue应该可以工作了。