2011-10-09 69 views
0

我有兩個變量,從1到100.我有兩個按鈕。我想要一個按鈕來在屏幕上打印兩個變量,並且我想要一個按鈕來打印兩個變量的總和。我該怎麼做呢?我的代碼是:Obj-C中兩個變量的總和

- (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]; 
} 
+0

有什麼問題嗎?該代碼看起來正確。 –

+0

@JackHumphries:你的意思是除了他的'-answer:'方法泄漏? –

+0

是的,我想知道他爲什麼要問這個問題,在屏幕上顯示兩個整數的總和。這不是一個記憶管理問題。 –

回答

1

如果您有問題之類的xy實例變量,你應該得到你想要的。

AS-是這些變量調用後不存在addition:和上面的代碼甚至不編譯...除非你也碰巧有xy已經聲明爲實例變量類和版本addition:只是遮蔽了它們。

無論哪種情況,請從xy中刪除int,addition:

+0

這不是C++,沒有「成員變量」這樣的東西。他們在Obj-C中被稱爲實例變量。 –

+1

當然。相同的概念。更新以避免混淆。 – nall

1

隨着現在配置好代碼的方式,您必須在接口文件(「.h文件」)中聲明您的int值。它會看起來像這樣的僞代碼:

@interface Class { 
    int x; 
    int y; 

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

-(IBAction)... 

然後在您的.m文件,你只要保持原樣(只是刪除int的聲明xy)和掛鉤的功能和網點在Interface Builder中。

0

我猜你可能有接聽鍵的問題......但是,這也應該工作...但如果不是那麼試試下面的代碼,一定要工作。

這裏您應該聲明x & y變量.h文件。並且不要聲明另外按鈕點擊。

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

如果你沒有這個問題,那麼我建議你請註明你所面臨的確切問題..

0

假設你正在確保label1和label2保持整數值你的回答方法可以像

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