2013-09-10 10 views
0

Я работаю на табло. Игрок может настроить три разных значения (экипировка, уровень и бонусы), которые при добавлении должны обеспечивать полную силу. Каждое из этих значений в настоящее время выводится как целое число, а UILabel отображает свое «соответствующее целое число». Я не могу понять, как добавить все три целых числа, а затем отобразить их на UILabel. В настоящее время я разрабатываю для iOS 7, но я не думаю, что это ужасно отличается для текущих поддерживаемых ОС. Любая помощь приветствуется.Добавление целых чисел и отображение в UILabel

.h

#import <UIKit/UIKit.h> 

int levelCount; 
int gearCount; 
int oneShotCount; 
int totalScoreCount; 

@interface ViewController : UIViewController 
@property (weak, nonatomic) IBOutlet UILabel *totalScore; 
@property (weak, nonatomic) IBOutlet UILabel *playerName; 
@property (weak, nonatomic) IBOutlet UILabel *levelNumber; 
@property (weak, nonatomic) IBOutlet UILabel *gearNumber; 
@property (weak, nonatomic) IBOutlet UILabel *oneShotNumber; 
- (IBAction)levelUpButton:(id)sender; 
- (IBAction)levelDownButton:(id)sender; 
- (IBAction)gearUpButton:(id)sender; 
- (IBAction)gearDownButton:(id)sender; 
- (IBAction)oneShotUpButton:(id)sender; 
- (IBAction)oneShotDownButton:(id)sender; 


@end 

.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 



- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    int ans = levelCount + gearCount + oneShotCount; 
    self.levelNumber.text = [NSString stringWithFormat:@"%i", ans]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 


- (IBAction)levelUpButton:(id)sender { 
    levelCount = levelCount + 1; 
    self.levelNumber.text = [NSString stringWithFormat:@"%i", levelCount]; 


} 

- (IBAction)levelDownButton:(id)sender { 
    levelCount = levelCount - 1; 
    self.levelNumber.text = [NSString stringWithFormat:@"%i", levelCount]; 

} 


- (IBAction)gearUpButton:(id)sender { 
    gearCount = gearCount + 1; 
    self.gearNumber.text = [NSString stringWithFormat:@"%i", gearCount]; 
} 

- (IBAction)gearDownButton:(id)sender { 
    gearCount = gearCount - 1; 
    self.gearNumber.text = [NSString stringWithFormat:@"%i", gearCount]; 
} 


- (IBAction)oneShotUpButton:(id)sender { 
    oneShotCount = oneShotCount + 1; 
    self.oneShotNumber.text = [NSString stringWithFormat:@"%i", oneShotCount]; 
} 

- (IBAction)oneShotDownButton:(id)sender { 
    oneShotCount = oneShotCount - 1; 
    self.oneShotNumber.text = [NSString stringWithFormat:@"%i", oneShotCount]; 
} 



@end 
+0

Замечание - почему вы объявили глобальные переменные для 'levelCount',' gearCount' и т. Д. В файле .h? Почему не эти личные ивары вместо глобалов? – rmaddy

+0

Честно говоря, потому что я понятия не имею, что я делаю. Я не ожидаю, что вы научите меня всему, но если вы захотите, я не возражаю узнать разницу. Я пытался узнать объективный C, но книги и то, что устарели. – sdfrien

+0

Начните с хорошей книги или учебника по языку программирования Objective-C. Книга Стивена Г. Кочана очень хороша. Написание приложений требует знания языка в первую очередь. – rmaddy

ответ

3

Создать какой-то updateScore метод, который называется любое одно из других значений изменяются.

- (void)updateScore { 
    totalScoreCount = ... // calculate score from levelCount, gearCount, and oneShotCount 

    self.totalScore.text = [NSString stringWithFormat:@"%i", totalScoreCount]; 
} 

Тогда в каждом из ваших ...UpButton: и ...DownButton: методов вы звоните:

[self updateScore]; 

Обязательно назвать это после обновления другого значения первого. Пример:

- (IBAction)levelUpButton:(id)sender { 
    levelCount = levelCount + 1; 
    self.levelNumber.text = [NSString stringWithFormat:@"%i", levelCount]; 
    [self updateScore]; 
} 
+0

Это полный код помощи ... !!! –

Смежные вопросы