Objective c Obj-C中两个变量之和
我有两个变量,从1到100。我有两个按钮。我想要一个按钮在屏幕上打印两个变量,我想要一个按钮打印两个变量的总和。我该怎么做?我的代码是: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
- (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中称为实例变量。