#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: [NSString stringWithFormat:@"%i", y]];
}
- (IBAction)answer:(id)sender;
{
int z;
z = x y;
answer.text = [[NSString alloc] initWithFormat:@"%i", z];
}
Комментарии:
1. В чем проблема? Этот код выглядит корректно.
2. @JackHumphries: Вы имеете в виду, помимо того факта, что его
-answer:
метод протекает?3. Да, мне было интересно, почему он задает этот вопрос о отображении суммы двух целых чисел на экране. Это не был вопрос управления памятью.
Ответ №1:
С учетом того, как вы настроили свой код сейчас, вам придется объявлять свои int
значения в файле интерфейса (« .h
file»). Это будет выглядеть примерно так: псевдокод:
@interface Class {
int x;
int y;
UILabel *label1;
UILabel *label2;
UILabel *answer;
}
-(IBAction)...
Затем в вашем .m
файле вы просто сохраните его как есть (просто удалите int
объявления для x
и y
) и подключите функции и выходы в Interface Builder.
Ответ №2:
Если вы создаете x
и y
создаете переменные рассматриваемого класса, вы должны получить то, что хотите.
Как есть, эти переменные не существуют после вызова addition:
, и приведенный выше код даже не компилируется … если только у вас также не было x
и y
уже объявлено как ivar в классе, а версии в addition:
просто затеняют их.
В любом случае удалите int
из x
и y
в addition:
.
Комментарии:
1. Это не C , здесь нет такого понятия, как «переменная-член». В Obj-C. они называются переменными экземпляра.
Ответ №3:
Я думаю, у вас может возникнуть проблема с кнопкой ответа… Но это тоже должно сработать … но если нет, попробуйте приведенный ниже код, который обязательно должен сработать.
Здесь вы должны объявить x
y
переменную amp; в .h
файле. И не объявляйте дополнительно нажатие кнопки.
- (IBAction)answer:(id)sender;
{
int z;
z = x y;
answer.text = [NSString stringWithFormat:@"%i", z];
}
Если у вас нет этого вопроса, я бы посоветовал вам указать точную проблему, с которой вы столкнулись..
Ответ №4:
Предполагая, что вы гарантируете, что label1 и label2 сохраняют целочисленные значения, ваш метод ответа может быть следующим
- (IBAction)answer:(id)sender;
{
[answer setText:[NSString stringWithFormat:@"%i",[[label1 text] intValue] [[label2 text] intValue]]];
}