Objective c Obj-C中两个变量之和

Objective c Obj-C中两个变量之和,objective-c,Objective C,我有两个变量,从1到100。我有两个按钮。我想要一个按钮在屏幕上打印两个变量,我想要一个按钮打印两个变量的总和。我该怎么做?我的代码是: - (IBAction)addition:(id)sender; { int x = arc4random() %100; int y = arc4random() %100; [label1 setText: [NSString stringWithFormat:@"%i", x]]; [label2 setText: [NS

我有两个变量,从1到100。我有两个按钮。我想要一个按钮在屏幕上打印两个变量,我想要一个按钮打印两个变量的总和。我该怎么做?我的代码是:

- (IBAction)addition:(id)sender;
{
    int x = arc4random() %100;
    int y = arc4random() %100;
    [label1 setText: [NSString stringWithFormat:@"%i", x]];
    [label2 setText: [NSString stringWithFormat:@"%i", y]];
}

- (IBAction)answer:(id)sender;
{
    int z;
    z = x+y;
    answer.text = [[NSString alloc] initWithFormat:@"%i", z];
}

如果您为所讨论的类生成
x
y
实例变量,您应该得到您想要的

实际上,在调用
addition:
之后,这些变量不存在,而且上面的代码甚至不编译。。。除非您碰巧在类中将
x
y
声明为IVAR,并且
addition:
中的版本只是将它们隐藏起来


在这两种情况下,从
x
y
中删除
int
添加:

按照现在配置代码的方式,您必须在接口文件(
.h
文件)中声明
int
值。它看起来像这样的伪代码:

@interface Class {
    int x;
    int y;

    UILabel *label1;
    UILabel *label2;
    UILabel *answer;
}

-(IBAction)...

然后在
.m
文件中,您只需保持原样(只需删除
x
y
int
声明),并在Interface Builder中连接函数和输出。

我想您可能对应答按钮有问题。。。但这也应该起作用。。。但如果没有,那么尝试下面的代码,这应该是肯定的工作

在这里,您应该在
.h
文件中声明
x
y
变量。并且不要声明另外的按钮点击

- (IBAction)answer:(id)sender;
{
    int z;
    z = x+y;
    answer.text = [NSString stringWithFormat:@"%i", z];
}

如果您没有这个问题,那么我建议您指定您所面临的确切问题。

假设您确保label1和label2保持整数值,您的回答方法如下

- (IBAction)answer:(id)sender;
{
    [answer setText:[NSString stringWithFormat:@"%i",[[label1 text] intValue] + [[label2 text] intValue]]];
}

有什么问题吗?那个代码看起来是正确的。@JackHumphries:你的意思是除了他的
-答案:
方法泄漏之外?是的,我想知道他为什么问这个关于在屏幕上显示两个整数之和的问题。这不是内存管理问题,这不是C++,没有“成员变量”。它们在Obj-C中称为实例变量。