2016-05-03 41 views
0

我有一个暂停IBAction &一个简历IBAction,都是用于按钮的,但我有我在游戏期间收集的游戏点数。如何在暂停IBAction &中将不同的游戏点整数值存储到继续IBAction方法中。在IBAction中存储整数并将它们传递给另一个IBAction

注意:暂停IBAction使所有NSTIMERS无效,并且恢复IBAction重新创建它们。

+2

存储它作为类的成员变量到所述IBActions与相关联。并阅读一本关于面向对象编程的初学者书。不要粗鲁,但这是非常非常非常基本的东西,如果你不得不问这样的东西,你不会很远,所以请你帮个忙,阅读一些入门教程。 – Gruntcakes

+0

你能提供一个例子吗? – 1QuickQuestion

回答

1

对象的实例变量只是为了帮助,我找到了一个快速的解决方案....但我敢肯定有一个更清洁方法:

在在vc.h:

NSMutableArray storeVariables; 

在vc.m

int a, b, c, d; 
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
a=0; 
b=0; 
c=0; 
d=0; 
storeVariables = [[NSMutableArray alloc] init]; 
} 

-(IBAction)pauseButton:(id)sender{ 
a=3; 
b=4; 
c=5; 
d=6; 
[storeVariables addObject:[NSNumber numberWithInt:a]]; 
[storeVariables addObject:[NSNumber numberWithInt:b]]; 
[storeVariables addObject:[NSNumber numberWithInt:c]]; 
[storeVariables addObject:[NSNumber numberWithInt:d]]; 
NSLog(@"%d, %d, %d, %d", storeVariables[0], storeVariables[1], storeVariables[2], storeVariables[3]); 
} 

-(IBAction)resumeButton:(id)sender{ 
a = [storeVariables[0]]; 
b = [storeVariables[1]] 
c = [storeVariables[2]] 
d = [storeVariables[3]] 
NSLog(@"%d, %d, %d, %d", a, b, c, d); 
storeVariables = [[NSMutableArray alloc] init]; 
} 
+0

太棒了!谢谢,这真的有帮助!我唯一的主要区别是没有两次实例化Array,我只是清除旧的值!这非常有帮助!我将在未来为任何可能需要它的人添加我的代码 – 1QuickQuestion

1

IBAction是代码。它不能存储任何东西。您需要保存在某个地方你的状态一样,实现IBAction为

0

这是什么工作: 的.h文件 -

@interface ViewController2 : UIViewController{ 

    NSMutableArray *savedScoreData; 
    int PlayTimer; 
    int timeMinute; 
    int bonusPts; 
    int enemykill; 

} 

的.m文件级

- (void)viewDidLoad { 

    PlayTimer = 0; 
    timeMinute = 0; 
    bonusPts = 0; 
    timeMinute = 0; 

    savedScoreData = [[NSMutableArray alloc] init]; 
} 

- (IBAction)pauseButton:(id)sender { 
    NSLog(@"pause-before: %d, %d, %d,",PlayTimer,enemykill,bonusPts); 
    [GameTimer invalidate]; //this constantly changes the PlayTimer & timeMinute variables 
    [characterTimer invalidate]; 
    [enemyTimer invalidate]; //this constantly changes the enemyKill & bonusPts variables 
    [_bonusImgHolder removeFromSuperview]; 
    if([_soundEnable isEqualToString:@"YES"]){ 
     [_player2 pause]; 
    } 
    //NSLog(@"%tu",_player2.playing); 
    _resumeButton.hidden = NO; 
    _pauseButton.hidden = YES; 
    NSLog(@"pause-after: %d, %d, %d,",PlayTimer,enemykill,bonusPts); 
    //[sender num :PlayTimer]; 
    [savedScoreData addObject:[NSNumber numberWithInteger: PlayTimer]]; 
    [savedScoreData addObject:[NSNumber numberWithInteger: timeMinute]]; 
    [savedScoreData addObject:[NSNumber numberWithInteger: enemykill]]; 
    [savedScoreData addObject:[NSNumber numberWithInteger: bonusPts]]; 
    NSLog(@"%i", [savedScoreData[0] intValue]); 
    NSLog(@"%d", [savedScoreData[1] intValue]); 
    NSLog(@"%d", [savedScoreData[2] intValue]); 
    NSLog(@"%d", [savedScoreData[3] intValue]); 

} 
- (IBAction)resumeButton:(int)pauseButton{ 
    NSLog(@"resume-before: %d, %d, %d,",PlayTimer,enemykill,bonusPts); 
    PlayTimer = [savedScoreData[0] intValue]; 
    timeMinute = [savedScoreData[1] intValue]; 
    enemykill = [savedScoreData[2] intValue]; 
    bonusPts = [savedScoreData[3] intValue]; 
    NSLog(@"%d", (int)enemykill); 
    _resumeButton.hidden = YES; 
    _pauseButton.hidden = NO; 
    if([_soundEnable isEqualToString:@"YES"]){ 
     [_player2 play]; 
    } 
    GameTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(CollectPoints) userInfo:nil repeats:YES]; 
    characterTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(Jumping) userInfo:nil repeats:YES]; 
    enemyTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(enemyTravel) userInfo:nil repeats:YES]; 
    NSLog(@"resume-after: %d, %d, %d,",PlayTimer,enemykill,bonusPts); 
    [savedScoreData removeAllObjects]; 
} 
相关问题